]> granicus.if.org Git - p11-kit/commitdiff
build: Fix undefined behavior in left shift
authorDaiki Ueno <dueno@redhat.com>
Wed, 18 Sep 2019 13:11:06 +0000 (15:11 +0200)
committerDaiki Ueno <ueno@gnu.org>
Wed, 18 Sep 2019 14:59:35 +0000 (16:59 +0200)
Spotted by UBSan.

p11-kit/rpc-message.c
trust/utf8.c

index ff48f1d129802a7bfe445ad7fa271f4d1b3cceca..228627e7e81936fe6d7a46e13962c07b81118d38 100644 (file)
@@ -636,7 +636,7 @@ p11_rpc_buffer_encode_uint32 (unsigned char* data,
 uint32_t
 p11_rpc_buffer_decode_uint32 (unsigned char* ptr)
 {
-       uint32_t val = ptr[0] << 24 | ptr[1] << 16 | ptr[2] << 8 | ptr[3];
+       uint32_t val = (uint32_t) ptr[0] << 24 | ptr[1] << 16 | ptr[2] << 8 | ptr[3];
        return val;
 }
 
index 72280b51c292d07f24900bfad832665b87334b0e..8d1c6ce6e1ba3bcc159ecba64248a18f370f401f 100644 (file)
@@ -253,7 +253,7 @@ ucs4be_to_uchar (const unsigned char *str,
        if (len < 4)
                return -1;
 
-       *uc = (str[0] << 24 | str[1] << 16 | str[2] << 8 | str[3]);
+       *uc = ((uint32_t) str[0] << 24 | str[1] << 16 | str[2] << 8 | str[3]);
        return 4;
 }