From d7841d150be6355d9dd06ccc433589c81a8fb1f8 Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Fri, 14 Oct 2022 22:53:03 -0400 Subject: [PATCH] Make ZSTD_getDictID_fromDDict() Read DictID from DDict Currently this function actually reads the dict ID from the dictionary's header, via `ZSTD_getDictID_fromDict()`. But during decompression the decomp- ressor actually compares the dict ID in the frame header with the dict ID in the DDict. Now of course the dict ID in the dictionary contents and the dict ID in the DDict struct *should* be the same. But in cases of memory corrupt- ion, where they can drift out of sync, it's misleading for this function to read it again from the dict buffer rather then return the dict ID that will actually be used. Also doing it this way avoids rechecking the magic and so on and so it is a tiny bit more efficient. --- lib/decompress/zstd_ddict.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/decompress/zstd_ddict.c b/lib/decompress/zstd_ddict.c index 889764a5e87..6ffa35f6eb9 100644 --- a/lib/decompress/zstd_ddict.c +++ b/lib/decompress/zstd_ddict.c @@ -240,5 +240,5 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict) unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict) { if (ddict==NULL) return 0; - return ZSTD_getDictID_fromDict(ddict->dictContent, ddict->dictSize); + return ddict->dictID; }