]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Avoid signed overflow by computing in uintmax_t and casting the result.
authorJoerg Sonnenberger <joerg@bec.de>
Sat, 29 Apr 2017 16:55:28 +0000 (18:55 +0200)
committerJoerg Sonnenberger <joerg@bec.de>
Sat, 29 Apr 2017 16:55:28 +0000 (18:55 +0200)
libarchive/test/test_read_format_mtree.c

index a8342f55790e12de08cef03b60c747c457687a5e..8576d579f9c637b7cc332dfea16f3d1cf3d5ddb6 100644 (file)
@@ -183,7 +183,7 @@ test_read_format_mtree1(void)
        min_time = archive_entry_mtime(ae);
        assert(min_time <= 0);
        /* Simply asserting min_time - 1 > 0 breaks with some compiler optimizations. */
-       t = min_time - 1;
+       t = (time_t)((uintmax_t)min_time - 1);
        assert(t > 0);
        assertEqualInt(archive_entry_is_encrypted(ae), 0);
        assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);