Fix a type promotion bug discivered and analyzed by Alan Modra
[oweals/busybox.git] / libbb / unzip.c
index 7de28930ae2f9828cf546355f3ed2fb362e371bc..40b8af427d2f3761226df63f03c2512c52e979cb 100644 (file)
@@ -997,7 +997,7 @@ extern int unzip(FILE *l_in_file, FILE *l_out_file)
        fread(buf, 1, 8, in_file);
 
        /* Validate decompression - crc */
-       if (((buf[0] | (buf[1] << 8)) |((buf[2] | (buf[3] << 8)) << 16)) != (crc ^ 0xffffffffL)) {
+       if ((unsigned int)((buf[0] | (buf[1] << 8)) |((buf[2] | (buf[3] << 8)) << 16)) != (crc ^ 0xffffffffL)) {
                error_msg("invalid compressed data--crc error");
        }
        /* Validate decompression - size */