From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457]
Date: Wed, 20 Jul 2022 01:26:06 +0800 [thread overview]
Message-ID: <202207200107.DpM7d7hO-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 16876 bytes --]
::::::
:::::: Manual check reason: "low confidence bisect report"
:::::: Manual check reason: "low confidence static check warning: lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]"
::::::
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Nick Terrell <terrelln@fb.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ca85855bdcae8f84f1512e88b4c75009ea17ea2f
commit: e0c1b49f5b674cca7b10549c53b3791d0bbc90a8 lib: zstd: Upgrade to latest upstream zstd version 1.4.10
date: 8 months ago
:::::: branch date: 17 hours ago
:::::: commit date: 8 months ago
config: arm-randconfig-c002-20220718 (https://download.01.org/0day-ci/archive/20220720/202207200107.DpM7d7hO-lkp(a)intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e0c1b49f5b674cca7b10549c53b3791d0bbc90a8
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e0c1b49f5b674cca7b10549c53b3791d0bbc90a8
# save the config file
ARCH=arm KBUILD_USERCFLAGS='-fanalyzer -Wno-error'
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
gcc-analyzer warnings: (new ones prefixed by >>)
lib/zstd/decompress/zstd_decompress.c: In function 'ZSTD_loadDEntropy':
>> lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1252 | unsigned offcodeMaxValue = MaxOff, offcodeLog;
| ^~~~~~~~~~
'ZSTD_decompressBegin_usingDict.part.0': events 1-2
|
| 1354 | size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize)
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (1) entry to 'ZSTD_decompressBegin_usingDict.part.0'
|......
| 1357 | if (dict && dictSize)
| | ~
| | |
| | (2) following 'true' branch...
|
'ZSTD_decompressBegin_usingDict.part.0': event 3
|
|lib/zstd/decompress/../common/zstd_internal.h:38:22:
| 38 | #define ZSTD_isError ERR_isError /* for inlining */
lib/zstd/decompress/../common/zstd_internal.h:84:7: note: in definition of macro 'RETURN_ERROR_IF'
| 84 | if (cond) { \
| | ^~~~
lib/zstd/decompress/zstd_decompress.c:1359:13: note: in expansion of macro 'ZSTD_isError'
| 1359 | ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)),
| | ^~~~~~~~~~~~
|
'ZSTD_decompressBegin_usingDict.part.0': event 4
|
|lib/zstd/decompress/../common/zstd_internal.h:38:22:
| 38 | #define ZSTD_isError ERR_isError /* for inlining */
lib/zstd/decompress/../common/zstd_internal.h:84:7: note: in definition of macro 'RETURN_ERROR_IF'
| 84 | if (cond) { \
| | ^~~~
lib/zstd/decompress/zstd_decompress.c:1359:13: note: in expansion of macro 'ZSTD_isError'
| 1359 | ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)),
| | ^~~~~~~~~~~~
|
+--> 'ZSTD_decompress_insertDictionary': events 5-6
|
| 1309 | static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize)
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (5) entry to 'ZSTD_decompress_insertDictionary'
| 1310 | {
| 1311 | if (dictSize < 8) return ZSTD_refDictContent(dctx, dict, dictSize);
| | ~
| | |
| | (6) following 'false' branch (when 'dictSize > 7')...
|
'ZSTD_decompress_insertDictionary': event 7
|
|include/asm-generic/unaligned.h:14:15:
| 14 | __pptr->x; \
| | ~~~~~~^~~
| | |
| | (7) ...to here
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__le32_to_cpu'
| 34 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
| | ^
include/asm-generic/unaligned.h:32:28: note: in expansion of macro '__get_unaligned_t'
| 32 | return le32_to_cpu(__get_unaligned_t(__le32, p));
| | ^~~~~~~~~~~~~~~~~
|
'ZSTD_decompress_insertDictionary': event 8
|
|lib/zstd/decompress/zstd_decompress.c:1313:12:
| 1313 | if (magic != ZSTD_MAGIC_DICTIONARY) {
| | ^
| | |
| | (8) following 'false' branch...
|
'ZSTD_decompress_insertDictionary': event 9
|
|include/asm-generic/unaligned.h:14:15:
| 14 | __pptr->x; \
| | ~~~~~~^~~
| | |
| | (9) ...to here
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__le32_to_cpu'
| 34 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
| | ^
include/asm-generic/unaligned.h:32:28: note: in expansion of macro '__get_unaligned_t'
| 32 | return le32_to_cpu(__get_unaligned_t(__le32, p));
| | ^~~~~~~~~~~~~~~~~
|
'ZSTD_decompress_insertDictionary': event 10
|
|lib/zstd/decompress/zstd_decompress.c:1319:30:
| 1319 | { size_t const eSize = ZSTD_loadDEntropy(&dctx->entropy, dict, dictSize);
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (10) calling 'ZSTD_loadDEntropy' from 'ZSTD_decompress_insertDictionary'
|
+--> 'ZSTD_loadDEntropy': event 11
|
| 1222 | ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy,
| | ^~~~~~~~~~~~~~~~~
| | |
| | (11) entry to 'ZSTD_loadDEntropy'
|
'ZSTD_loadDEntropy': event 12
vim +1252 lib/zstd/decompress/zstd_decompress.c
e0c1b49f5b674c Nick Terrell 2020-09-11 1217
e0c1b49f5b674c Nick Terrell 2020-09-11 1218 /*! ZSTD_loadDEntropy() :
e0c1b49f5b674c Nick Terrell 2020-09-11 1219 * dict : must point at beginning of a valid zstd dictionary.
e0c1b49f5b674c Nick Terrell 2020-09-11 1220 * @return : size of entropy tables read */
e0c1b49f5b674c Nick Terrell 2020-09-11 1221 size_t
e0c1b49f5b674c Nick Terrell 2020-09-11 1222 ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy,
e0c1b49f5b674c Nick Terrell 2020-09-11 1223 const void* const dict, size_t const dictSize)
e0c1b49f5b674c Nick Terrell 2020-09-11 1224 {
e0c1b49f5b674c Nick Terrell 2020-09-11 1225 const BYTE* dictPtr = (const BYTE*)dict;
e0c1b49f5b674c Nick Terrell 2020-09-11 1226 const BYTE* const dictEnd = dictPtr + dictSize;
e0c1b49f5b674c Nick Terrell 2020-09-11 1227
e0c1b49f5b674c Nick Terrell 2020-09-11 1228 RETURN_ERROR_IF(dictSize <= 8, dictionary_corrupted, "dict is too small");
e0c1b49f5b674c Nick Terrell 2020-09-11 1229 assert(MEM_readLE32(dict) == ZSTD_MAGIC_DICTIONARY); /* dict must be valid */
e0c1b49f5b674c Nick Terrell 2020-09-11 1230 dictPtr += 8; /* skip header = magic + dictID */
e0c1b49f5b674c Nick Terrell 2020-09-11 1231
e0c1b49f5b674c Nick Terrell 2020-09-11 1232 ZSTD_STATIC_ASSERT(offsetof(ZSTD_entropyDTables_t, OFTable) == offsetof(ZSTD_entropyDTables_t, LLTable) + sizeof(entropy->LLTable));
e0c1b49f5b674c Nick Terrell 2020-09-11 1233 ZSTD_STATIC_ASSERT(offsetof(ZSTD_entropyDTables_t, MLTable) == offsetof(ZSTD_entropyDTables_t, OFTable) + sizeof(entropy->OFTable));
e0c1b49f5b674c Nick Terrell 2020-09-11 1234 ZSTD_STATIC_ASSERT(sizeof(entropy->LLTable) + sizeof(entropy->OFTable) + sizeof(entropy->MLTable) >= HUF_DECOMPRESS_WORKSPACE_SIZE);
e0c1b49f5b674c Nick Terrell 2020-09-11 1235 { void* const workspace = &entropy->LLTable; /* use fse tables as temporary workspace; implies fse tables are grouped together */
e0c1b49f5b674c Nick Terrell 2020-09-11 1236 size_t const workspaceSize = sizeof(entropy->LLTable) + sizeof(entropy->OFTable) + sizeof(entropy->MLTable);
e0c1b49f5b674c Nick Terrell 2020-09-11 1237 #ifdef HUF_FORCE_DECOMPRESS_X1
e0c1b49f5b674c Nick Terrell 2020-09-11 1238 /* in minimal huffman, we always use X1 variants */
e0c1b49f5b674c Nick Terrell 2020-09-11 1239 size_t const hSize = HUF_readDTableX1_wksp(entropy->hufTable,
e0c1b49f5b674c Nick Terrell 2020-09-11 1240 dictPtr, dictEnd - dictPtr,
e0c1b49f5b674c Nick Terrell 2020-09-11 1241 workspace, workspaceSize);
e0c1b49f5b674c Nick Terrell 2020-09-11 1242 #else
e0c1b49f5b674c Nick Terrell 2020-09-11 1243 size_t const hSize = HUF_readDTableX2_wksp(entropy->hufTable,
e0c1b49f5b674c Nick Terrell 2020-09-11 1244 dictPtr, (size_t)(dictEnd - dictPtr),
e0c1b49f5b674c Nick Terrell 2020-09-11 1245 workspace, workspaceSize);
e0c1b49f5b674c Nick Terrell 2020-09-11 1246 #endif
e0c1b49f5b674c Nick Terrell 2020-09-11 1247 RETURN_ERROR_IF(HUF_isError(hSize), dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1248 dictPtr += hSize;
e0c1b49f5b674c Nick Terrell 2020-09-11 1249 }
e0c1b49f5b674c Nick Terrell 2020-09-11 1250
e0c1b49f5b674c Nick Terrell 2020-09-11 1251 { short offcodeNCount[MaxOff+1];
e0c1b49f5b674c Nick Terrell 2020-09-11 @1252 unsigned offcodeMaxValue = MaxOff, offcodeLog;
e0c1b49f5b674c Nick Terrell 2020-09-11 1253 size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, (size_t)(dictEnd-dictPtr));
e0c1b49f5b674c Nick Terrell 2020-09-11 1254 RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1255 RETURN_ERROR_IF(offcodeMaxValue > MaxOff, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1256 RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1257 ZSTD_buildFSETable( entropy->OFTable,
e0c1b49f5b674c Nick Terrell 2020-09-11 1258 offcodeNCount, offcodeMaxValue,
e0c1b49f5b674c Nick Terrell 2020-09-11 1259 OF_base, OF_bits,
e0c1b49f5b674c Nick Terrell 2020-09-11 1260 offcodeLog,
e0c1b49f5b674c Nick Terrell 2020-09-11 1261 entropy->workspace, sizeof(entropy->workspace),
e0c1b49f5b674c Nick Terrell 2020-09-11 1262 /* bmi2 */0);
e0c1b49f5b674c Nick Terrell 2020-09-11 1263 dictPtr += offcodeHeaderSize;
e0c1b49f5b674c Nick Terrell 2020-09-11 1264 }
e0c1b49f5b674c Nick Terrell 2020-09-11 1265
e0c1b49f5b674c Nick Terrell 2020-09-11 1266 { short matchlengthNCount[MaxML+1];
e0c1b49f5b674c Nick Terrell 2020-09-11 1267 unsigned matchlengthMaxValue = MaxML, matchlengthLog;
e0c1b49f5b674c Nick Terrell 2020-09-11 1268 size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, (size_t)(dictEnd-dictPtr));
e0c1b49f5b674c Nick Terrell 2020-09-11 1269 RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1270 RETURN_ERROR_IF(matchlengthMaxValue > MaxML, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1271 RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1272 ZSTD_buildFSETable( entropy->MLTable,
e0c1b49f5b674c Nick Terrell 2020-09-11 1273 matchlengthNCount, matchlengthMaxValue,
e0c1b49f5b674c Nick Terrell 2020-09-11 1274 ML_base, ML_bits,
e0c1b49f5b674c Nick Terrell 2020-09-11 1275 matchlengthLog,
e0c1b49f5b674c Nick Terrell 2020-09-11 1276 entropy->workspace, sizeof(entropy->workspace),
e0c1b49f5b674c Nick Terrell 2020-09-11 1277 /* bmi2 */ 0);
e0c1b49f5b674c Nick Terrell 2020-09-11 1278 dictPtr += matchlengthHeaderSize;
e0c1b49f5b674c Nick Terrell 2020-09-11 1279 }
e0c1b49f5b674c Nick Terrell 2020-09-11 1280
e0c1b49f5b674c Nick Terrell 2020-09-11 1281 { short litlengthNCount[MaxLL+1];
e0c1b49f5b674c Nick Terrell 2020-09-11 1282 unsigned litlengthMaxValue = MaxLL, litlengthLog;
e0c1b49f5b674c Nick Terrell 2020-09-11 1283 size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, (size_t)(dictEnd-dictPtr));
e0c1b49f5b674c Nick Terrell 2020-09-11 1284 RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1285 RETURN_ERROR_IF(litlengthMaxValue > MaxLL, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1286 RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1287 ZSTD_buildFSETable( entropy->LLTable,
e0c1b49f5b674c Nick Terrell 2020-09-11 1288 litlengthNCount, litlengthMaxValue,
e0c1b49f5b674c Nick Terrell 2020-09-11 1289 LL_base, LL_bits,
e0c1b49f5b674c Nick Terrell 2020-09-11 1290 litlengthLog,
e0c1b49f5b674c Nick Terrell 2020-09-11 1291 entropy->workspace, sizeof(entropy->workspace),
e0c1b49f5b674c Nick Terrell 2020-09-11 1292 /* bmi2 */ 0);
e0c1b49f5b674c Nick Terrell 2020-09-11 1293 dictPtr += litlengthHeaderSize;
e0c1b49f5b674c Nick Terrell 2020-09-11 1294 }
e0c1b49f5b674c Nick Terrell 2020-09-11 1295
e0c1b49f5b674c Nick Terrell 2020-09-11 1296 RETURN_ERROR_IF(dictPtr+12 > dictEnd, dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1297 { int i;
e0c1b49f5b674c Nick Terrell 2020-09-11 1298 size_t const dictContentSize = (size_t)(dictEnd - (dictPtr+12));
e0c1b49f5b674c Nick Terrell 2020-09-11 1299 for (i=0; i<3; i++) {
e0c1b49f5b674c Nick Terrell 2020-09-11 1300 U32 const rep = MEM_readLE32(dictPtr); dictPtr += 4;
e0c1b49f5b674c Nick Terrell 2020-09-11 1301 RETURN_ERROR_IF(rep==0 || rep > dictContentSize,
e0c1b49f5b674c Nick Terrell 2020-09-11 1302 dictionary_corrupted, "");
e0c1b49f5b674c Nick Terrell 2020-09-11 1303 entropy->rep[i] = rep;
e0c1b49f5b674c Nick Terrell 2020-09-11 1304 } }
e0c1b49f5b674c Nick Terrell 2020-09-11 1305
e0c1b49f5b674c Nick Terrell 2020-09-11 1306 return (size_t)(dictPtr - (const BYTE*)dict);
e0c1b49f5b674c Nick Terrell 2020-09-11 1307 }
e0c1b49f5b674c Nick Terrell 2020-09-11 1308
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-07-19 17:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-19 17:26 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-07-25 16:58 lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457] kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202207200107.DpM7d7hO-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.