librpc:ndr_cab: Cast data pointer correctly
authorAndreas Schneider <asn@samba.org>
Tue, 9 May 2017 14:51:43 +0000 (16:51 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 19 Jul 2017 19:22:13 +0000 (21:22 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
librpc/ndr/ndr_cab.c

index ae95bf45b3b48601bdcb2a6eddf28db0ca4e1201..110206855be9c4eee7226195d744ce00b6bf7fe3 100644 (file)
@@ -79,7 +79,7 @@ static uint32_t ndr_cab_compute_checksum(uint8_t *data, uint32_t length, uint32_
        pb = data;
 
        while (num_ulong-- > 0) {
-               ul = *pb++;
+               ul = (uint32_t)(*pb++);
                ul |= (((uint32_t)(*pb++)) <<  8);
                ul |= (((uint32_t)(*pb++)) << 16);
                ul |= (((uint32_t)(*pb++)) << 24);
@@ -95,7 +95,7 @@ static uint32_t ndr_cab_compute_checksum(uint8_t *data, uint32_t length, uint32_
        case 2:
                ul |= (((uint32_t)(*pb++)) <<  8);
        case 1:
-               ul |= *pb++;
+               ul |= (uint32_t)(*pb++);
        default:
                break;
        }