Fix ZSTD_f_zstd1_magicless for small data
* Fix `ZSTD_FRAMEHEADERSIZE_PREFIX` and `ZSTD_FRAMEHEADERSIZE_MIN` to take a `format` parameter, so it is impossible to get the wrong size. * Fix the places that called `ZSTD_FRAMEHEADERSIZE_PREFIX` without taking the format into account, which is now impossible by design. * Call `ZSTD_frameHeaderSize_internal()` with `dctx->format`. * The added tests catch both bugs in `ZSTD_decompressFrame()`. Fixes #1813.
This commit is contained in:
+2
-2
@@ -1017,8 +1017,8 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
|
||||
* Some of them might be removed in the future (especially when redundant with existing stable functions)
|
||||
* ***************************************************************************************/
|
||||
|
||||
#define ZSTD_FRAMEHEADERSIZE_PREFIX 5 /* minimum input size required to query frame header size */
|
||||
#define ZSTD_FRAMEHEADERSIZE_MIN 6
|
||||
#define ZSTD_FRAMEHEADERSIZE_PREFIX(format) ((format) == ZSTD_f_zstd1 ? 5 : 1) /* minimum input size required to query frame header size */
|
||||
#define ZSTD_FRAMEHEADERSIZE_MIN(format) ((format) == ZSTD_f_zstd1 ? 6 : 2)
|
||||
#define ZSTD_FRAMEHEADERSIZE_MAX 18 /* can be useful for static allocation */
|
||||
#define ZSTD_SKIPPABLEHEADERSIZE 8
|
||||
|
||||
|
||||
Reference in New Issue
Block a user