From fd3362b56fe3f435a0b047ee548f71f53e923650 Mon Sep 17 00:00:00 2001 From: npt-1707 Date: Mon, 28 Apr 2025 01:18:15 +0800 Subject: [PATCH] Fix potential vulnerable cloned functions: Avoid pre-decrement of pointer in big-endian CRC calculation --- external/assimp-3.0.1270/contrib/zlib/crc32.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/external/assimp-3.0.1270/contrib/zlib/crc32.c b/external/assimp-3.0.1270/contrib/zlib/crc32.c index 91be372d2..d96201d4c 100644 --- a/external/assimp-3.0.1270/contrib/zlib/crc32.c +++ b/external/assimp-3.0.1270/contrib/zlib/crc32.c @@ -295,7 +295,7 @@ local unsigned long crc32_little(crc, buf, len) } /* ========================================================================= */ -#define DOBIG4 c ^= *++buf4; \ +#define DOBIG4 c ^= *buf4++; \ c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 @@ -317,7 +317,6 @@ local unsigned long crc32_big(crc, buf, len) } buf4 = (const u4 FAR *)(const void FAR *)buf; - buf4--; while (len >= 32) { DOBIG32; len -= 32; @@ -326,7 +325,6 @@ local unsigned long crc32_big(crc, buf, len) DOBIG4; len -= 4; } - buf4++; buf = (const unsigned char FAR *)buf4; if (len) do {