All of lore.kernel.org
 help / color / mirror / Atom feed
* lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457]
@ 2022-07-25 16:58 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-07-25 16:58 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 16874 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:   70664fc10c0d722ec79d746d8ac1db8546c94114
commit: e0c1b49f5b674cca7b10549c53b3791d0bbc90a8 lib: zstd: Upgrade to latest upstream zstd version 1.4.10
date:   9 months ago
:::::: branch date: 22 hours ago
:::::: commit date: 9 months ago
config: arm-randconfig-c002-20220718 (https://download.01.org/0day-ci/archive/20220724/202207240145.KxyPpXBL-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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457]
@ 2022-07-19 17:26 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-07-19 17:26 UTC (permalink / raw)
  To: kbuild

[-- 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-07-25 16:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-25 16:58 lib/zstd/decompress/zstd_decompress.c:1252:44: warning: use of uninitialized value '<unknown>' [CWE-457] kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-07-19 17:26 kernel test robot

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.