From: Joerg Sonnenberger Date: Sat, 29 Apr 2017 16:53:56 +0000 (+0200) Subject: Avoid shifting negative numbers by doing endian manipulation unsignedly. X-Git-Tag: v3.3.2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1428f75035dfe4b16ed5b975930579affda0763;p=thirdparty%2Flibarchive.git Avoid shifting negative numbers by doing endian manipulation unsignedly. --- diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c index 1e9849fdd..cbb14c32d 100644 --- a/libarchive/archive_read_support_format_rar.c +++ b/libarchive/archive_read_support_format_rar.c @@ -1750,7 +1750,7 @@ read_exttime(const char *p, struct rar *rar, const char *endp) return (-1); for (j = 0; j < count; j++) { - rem = ((*p) << 16) | (rem >> 8); + rem = (((unsigned)(unsigned char)*p) << 16) | (rem >> 8); p++; } tm = localtime(&t);