From 929002a2d5e6491c63877836deb67834f87918f7 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 21 Aug 2010 11:26:21 -0700 Subject: [PATCH] Avoid infinite loop if the file's length is negative. Fixes bug 4664. --- generator.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/generator.c b/generator.c index 01398b58..b12087fc 100644 --- a/generator.c +++ b/generator.c @@ -567,6 +567,12 @@ static void sum_sizes_sqroot(struct sum_struct *sum, int64 len) int s2length; int64 l; + if (len < 0) { + /* The file length overflowed our int64 var, so we can't process this file. */ + sum->count = -1; /* indicate overflow error */ + return; + } + if (block_size) blength = block_size; else if (len <= BLOCK_SIZE * BLOCK_SIZE) -- 2.34.1