提交 f86c7801 编写于 作者: D Daniel P. Berrange

Fix 32-bit int truncation in QED header check

* src/util/memory.c: Avoid 32-bit truncation extracting a 64bit int
上级 227ed266
...@@ -437,14 +437,14 @@ qedGetHeaderUL(const unsigned char *loc) ...@@ -437,14 +437,14 @@ qedGetHeaderUL(const unsigned char *loc)
static unsigned long long static unsigned long long
qedGetHeaderULL(const unsigned char *loc) qedGetHeaderULL(const unsigned char *loc)
{ {
return ( ((unsigned long)loc[7] << 56) return ( ((unsigned long long)loc[7] << 56)
| ((unsigned long)loc[6] << 48) | ((unsigned long long)loc[6] << 48)
| ((unsigned long)loc[5] << 40) | ((unsigned long long)loc[5] << 40)
| ((unsigned long)loc[4] << 32) | ((unsigned long long)loc[4] << 32)
| ((unsigned long)loc[3] << 24) | ((unsigned long long)loc[3] << 24)
| ((unsigned long)loc[2] << 16) | ((unsigned long long)loc[2] << 16)
| ((unsigned long)loc[1] << 8) | ((unsigned long long)loc[1] << 8)
| ((unsigned long)loc[0] << 0)); | ((unsigned long long)loc[0] << 0));
} }
static int static int
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册