]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Mod adler and sum2 when calculating adler32 for short lengths.
authorNathan Moinvaziri <nathan@nathanm.com>
Mon, 1 Mar 2021 02:17:04 +0000 (18:17 -0800)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sat, 12 Jun 2021 16:45:54 +0000 (18:45 +0200)
adler32_p.h

index 7f75c71e2e394c508f4e067b5d7e23c88ec5ba2d..adcc79f01e8404ba8cd7f6e1d47259d1f9d60361 100644 (file)
 
 static inline uint32_t adler32_len_1(uint32_t adler, const unsigned char *buf, uint32_t sum2) {
     adler += buf[0];
-    if (adler >= BASE)
-        adler -= BASE;
+    adler %= BASE;
     sum2 += adler;
-    if (sum2 >= BASE)
-        sum2 -= BASE;
+    sum2 %= BASE;
     return adler | (sum2 << 16);
 }
 
@@ -34,8 +32,7 @@ static inline uint32_t adler32_len_16(uint32_t adler, const unsigned char *buf,
         adler += *buf++;
         sum2 += adler;
     }
-    if (adler >= BASE)
-        adler -= BASE;
+    adler %= BASE;
     sum2 %= BASE;            /* only added so many BASE's */
     return adler | (sum2 << 16);
 }