]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Merge pull request #2649 from stoeckmann/compress_recursion
authorTim Kientzle <kientzle@acm.org>
Thu, 29 May 2025 23:37:44 +0000 (16:37 -0700)
committerMartin Matuska <martin@matuska.de>
Sat, 31 May 2025 19:25:32 +0000 (21:25 +0200)
compress: Prevent call stack overflow
(cherry picked from commit cd5c44c5d0470a5bb497541ae7bcb617c4480855)

libarchive/archive_read_support_filter_compress.c

index b6e9816dfee9e3a0c6ba3cc035ed44596552921c..b89eaabe52595ceb7659c13f851e28cba2289d11 100644 (file)
@@ -328,6 +328,7 @@ next_code(struct archive_read_filter *self)
        static int debug_buff[1024];
        static unsigned debug_index;
 
+again:
        code = newcode = getbits(self, state->bits);
        if (code < 0)
                return (code);
@@ -360,7 +361,7 @@ next_code(struct archive_read_filter *self)
                state->section_end_code = (1 << state->bits) - 1;
                state->free_ent = 257;
                state->oldcode = -1;
-               return (next_code(self));
+               goto again;
        }
 
        if (code > state->free_ent