]> Zhao Yanbai Git Server - minix.git/commitdiff
libarchive: fix bad timestamp bug caused by bit shift.
authorThomas Cort <tcort@minix3.org>
Mon, 6 Jun 2011 14:31:20 +0000 (14:31 +0000)
committerBen Gras <ben@minix3.org>
Mon, 6 Jun 2011 18:52:22 +0000 (20:52 +0200)
The file timestamps in archives created by libarchive all had
dates in the year 2038. It was caused by a bit shift in
archive_write_set_format_ustar which shifted 1 instead of 1ull.

lib/libarchive/archive_write_set_format_ustar.c

index fca745d25c67c3a92fe515c097e7e8223ae5c10e..7a3a73de36409d60e9e5087ce998e9f64e49ccf1 100644 (file)
@@ -502,7 +502,7 @@ format_number(int32_t v, char *p, int s, int maxsize, int strict)
 #if !defined(__LONG_LONG_SUPPORTED)
        limit = lshift64(cvu64(1), s*3);
 #else
-       limit = (1 << (s*3));
+       limit = (1ull << (s*3));
 #endif
 
        /* "Strict" only permits octal values with proper termination. */