From 3e718bf2d475288ef2fda1b445dfa83c1e6087b7 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Thu, 29 May 2025 16:37:44 -0700 Subject: [PATCH] Merge pull request #2649 from stoeckmann/compress_recursion compress: Prevent call stack overflow (cherry picked from commit cd5c44c5d0470a5bb497541ae7bcb617c4480855) --- libarchive/archive_read_support_filter_compress.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libarchive/archive_read_support_filter_compress.c b/libarchive/archive_read_support_filter_compress.c index b6e9816df..b89eaabe5 100644 --- a/libarchive/archive_read_support_filter_compress.c +++ b/libarchive/archive_read_support_filter_compress.c @@ -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 -- 2.47.3