]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Save one byte on the frame epilogue
authorJacob Greenfield <jacob@jacobgreenfield.me>
Tue, 18 Jul 2023 14:48:46 +0000 (10:48 -0400)
committerNick Terrell <nickrterrell@gmail.com>
Thu, 20 Jul 2023 22:59:44 +0000 (18:59 -0400)
lib/compress/zstd_compress.c

index 48cee4db74b4b7ee9c7bfe9418203964b07da9a9..209f3b0eeacaa9b1a559564d2367f1a8fb453c80 100644 (file)
@@ -5192,8 +5192,9 @@ static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity)
     if (cctx->stage != ZSTDcs_ending) {
         /* write one last empty block, make it the "last" block */
         U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1) + 0;
-        RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for epilogue");
-        MEM_writeLE32(op, cBlockHeader24);
+        ZSTD_STATIC_ASSERT(ZSTD_BLOCKHEADERSIZE == 3);
+        RETURN_ERROR_IF(dstCapacity<3, dstSize_tooSmall, "no room for epilogue");
+        MEM_writeLE24(op, cBlockHeader24);
         op += ZSTD_blockHeaderSize;
         dstCapacity -= ZSTD_blockHeaderSize;
     }