Fix 32-bit int truncation in QED header check

* src/util/memory.c: Avoid 32-bit truncation extracting a 64bit int
This commit is contained in:
Daniel P. Berrange 2010-11-23 13:32:31 +00:00
parent 227ed26614
commit f86c7801e9

View File

@ -437,14 +437,14 @@ qedGetHeaderUL(const unsigned char *loc)
static unsigned long long
qedGetHeaderULL(const unsigned char *loc)
{
return ( ((unsigned long)loc[7] << 56)
| ((unsigned long)loc[6] << 48)
| ((unsigned long)loc[5] << 40)
| ((unsigned long)loc[4] << 32)
| ((unsigned long)loc[3] << 24)
| ((unsigned long)loc[2] << 16)
| ((unsigned long)loc[1] << 8)
| ((unsigned long)loc[0] << 0));
return ( ((unsigned long long)loc[7] << 56)
| ((unsigned long long)loc[6] << 48)
| ((unsigned long long)loc[5] << 40)
| ((unsigned long long)loc[4] << 32)
| ((unsigned long long)loc[3] << 24)
| ((unsigned long long)loc[2] << 16)
| ((unsigned long long)loc[1] << 8)
| ((unsigned long long)loc[0] << 0));
}
static int