From 147ac93a065e215545488337efbaa6dceebc04d0 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 3 May 2021 14:57:27 +0200 Subject: decompress_gunzip: simplify ERR_RET bit clearing My gcc is in fact clever enough to do it itself, but let's be explicit Signed-off-by: Denys Vlasenko --- archival/libarchive/decompress_gunzip.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c index e93cd5005..d051ecb81 100644 --- a/archival/libarchive/decompress_gunzip.c +++ b/archival/libarchive/decompress_gunzip.c @@ -230,9 +230,8 @@ static void huft_free(huft_t *p) * If 'p' has the error bit set we have to clear it, otherwise we might run * into a segmentation fault or an invalid pointer to free(p) */ - if (BAD_HUFT(p)) { - p = (huft_t*)((uintptr_t)(p) ^ (uintptr_t)(ERR_RET)); - } + //if (BAD_HUFT(p)) // commented out, since bit clearing has effect only if condition is true + p = (huft_t*)((uintptr_t)p & ~(uintptr_t)ERR_RET); /* Go through linked list, freeing from the malloced (t[-1]) address. */ while (p) { -- cgit v1.2.3-55-g6feb