]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix 32-bit int truncation in QED header check
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 23 Nov 2010 13:32:31 +0000 (13:32 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 23 Nov 2010 15:18:03 +0000 (15:18 +0000)
* src/util/memory.c: Avoid 32-bit truncation extracting a 64bit int

src/util/storage_file.c

index 2612eb650688a41da1a3dad2d9bee32becaef031..4faa99d8b324111b1e0dec19909f05e78aff2a71 100644 (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