]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
[opt] Add asserts for corruption in ZSTD_updateTree()
authorNick Terrell <terrelln@fb.com>
Fri, 21 Jun 2019 22:22:29 +0000 (15:22 -0700)
committerNick Terrell <terrelln@fb.com>
Fri, 21 Jun 2019 22:22:29 +0000 (15:22 -0700)
lib/compress/zstd_opt.c

index 39858a82845961c812d63e8a0fd7282ebb9ca093..e32e542e021a9c75a2456d6262b97fff20b80b24 100644 (file)
@@ -525,8 +525,13 @@ void ZSTD_updateTree_internal(
     DEBUGLOG(6, "ZSTD_updateTree_internal, from %u to %u  (dictMode:%u)",
                 idx, target, dictMode);
 
-    while(idx < target)
-        idx += ZSTD_insertBt1(ms, base+idx, iend, mls, dictMode == ZSTD_extDict);
+    while(idx < target) {
+        U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, mls, dictMode == ZSTD_extDict);
+        assert(idx < (U32)(idx + forward));
+        idx += forward;
+    }
+    assert((size_t)(ip - base) <= (size_t)(U32)(-1));
+    assert((size_t)(iend - base) <= (size_t)(U32)(-1));
     ms->nextToUpdate = target;
 }