OSDN Git Service

migration/qemu-file.c: Don't shift left into sign bit
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 23 Dec 2014 22:26:55 +0000 (22:26 +0000)
committerMichael Tokarev <mjt@tls.msk.ru>
Thu, 15 Jan 2015 07:44:13 +0000 (10:44 +0300)
Add a cast in qemu_get_be32() to avoid shifting left into the sign
bit of a signed integer (which is undefined behaviour in C).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
migration/qemu-file.c

index d2d4007..a7f2a34 100644 (file)
@@ -503,7 +503,7 @@ unsigned int qemu_get_be16(QEMUFile *f)
 unsigned int qemu_get_be32(QEMUFile *f)
 {
     unsigned int v;
-    v = qemu_get_byte(f) << 24;
+    v = (unsigned int)qemu_get_byte(f) << 24;
     v |= qemu_get_byte(f) << 16;
     v |= qemu_get_byte(f) << 8;
     v |= qemu_get_byte(f);