From 7f539d14484ee0fde7c1290ae22eebe739bc92cf Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Sat, 15 Aug 2026 19:50:05 +0300 Subject: [PATCH] Tests: Test that integer overflow in xz --list totals is caught --- tests/test_files.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/test_files.sh b/tests/test_files.sh index 894130c1..fa02ecd7 100755 --- a/tests/test_files.sh +++ b/tests/test_files.sh @@ -130,6 +130,21 @@ if test -n "$XZ" && "$XZ" -l "$I" > /dev/null 2>&1; then exit 1 fi +# Test that integer overflow in --list totals is caught. +# It should succeed when the file is passed twice to xz -l and +# fail when passed thrice. +I="$srcdir/files/bad-1-index-huge-uncomp.xz" +if test -n "$XZ" && "$XZ" -l "$I" "$I" > /dev/null 2>&1; then + : +else + echo "xz -l unexpectedly failed when the file was used twice: $I" + exit 1 +fi +if test -n "$XZ" && "$XZ" -l "$I" "$I" "$I" > /dev/null 2>&1; then + echo "xz -l unexpectedly succeeded when the file was used thrice: $I" + exit 1 +fi + for I in "$srcdir"/files/unsupported-*.xz do # Test these only with xz as unsupported-check.xz will exit