CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Nick Terrell <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   6e7765cb477a9753670d4351d14de93f1e9dbbd4
commit: e0c1b49f5b674cca7b10549c53b3791d0bbc90a8 lib: zstd: Upgrade to latest 
upstream zstd version 1.4.10
date:   9 months ago
:::::: branch date: 24 hours ago
:::::: commit date: 9 months ago
config: mips-randconfig-m031-20220727 
(https://download.01.org/0day-ci/archive/20220729/[email protected]/config)
compiler: mipsel-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
arch/mips/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:397 
HUF_decompress4X1_usingDTable_internal_body() warn: maybe use && instead of &
arch/mips/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:397 
HUF_decompress4X1_usingDTable_internal_body() warn: maybe use && instead of &
arch/mips/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:850 
HUF_decompress4X2_usingDTable_internal_body() warn: maybe use && instead of &
arch/mips/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:850 
HUF_decompress4X2_usingDTable_internal_body() warn: maybe use && instead of &

vim +397 
arch/mips/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c

e0c1b49f5b674c Nick Terrell 2020-09-11  348  
e0c1b49f5b674c Nick Terrell 2020-09-11  349  FORCE_INLINE_TEMPLATE size_t
e0c1b49f5b674c Nick Terrell 2020-09-11  350  
HUF_decompress4X1_usingDTable_internal_body(
e0c1b49f5b674c Nick Terrell 2020-09-11  351            void* dst,  size_t 
dstSize,
e0c1b49f5b674c Nick Terrell 2020-09-11  352      const void* cSrc, size_t 
cSrcSize,
e0c1b49f5b674c Nick Terrell 2020-09-11  353      const HUF_DTable* DTable)
e0c1b49f5b674c Nick Terrell 2020-09-11  354  {
e0c1b49f5b674c Nick Terrell 2020-09-11  355      /* Check */
e0c1b49f5b674c Nick Terrell 2020-09-11  356      if (cSrcSize < 10) return 
ERROR(corruption_detected);  /* strict minimum : jump table + 1 byte per stream 
*/
e0c1b49f5b674c Nick Terrell 2020-09-11  357  
e0c1b49f5b674c Nick Terrell 2020-09-11  358      {   const BYTE* const istart = 
(const BYTE*) cSrc;
e0c1b49f5b674c Nick Terrell 2020-09-11  359          BYTE* const ostart = 
(BYTE*) dst;
e0c1b49f5b674c Nick Terrell 2020-09-11  360          BYTE* const oend = ostart 
+ dstSize;
e0c1b49f5b674c Nick Terrell 2020-09-11  361          BYTE* const olimit = oend 
- 3;
e0c1b49f5b674c Nick Terrell 2020-09-11  362          const void* const dtPtr = 
DTable + 1;
e0c1b49f5b674c Nick Terrell 2020-09-11  363          const HUF_DEltX1* const dt 
= (const HUF_DEltX1*)dtPtr;
e0c1b49f5b674c Nick Terrell 2020-09-11  364  
e0c1b49f5b674c Nick Terrell 2020-09-11  365          /* Init */
e0c1b49f5b674c Nick Terrell 2020-09-11  366          BIT_DStream_t bitD1;
e0c1b49f5b674c Nick Terrell 2020-09-11  367          BIT_DStream_t bitD2;
e0c1b49f5b674c Nick Terrell 2020-09-11  368          BIT_DStream_t bitD3;
e0c1b49f5b674c Nick Terrell 2020-09-11  369          BIT_DStream_t bitD4;
e0c1b49f5b674c Nick Terrell 2020-09-11  370          size_t const length1 = 
MEM_readLE16(istart);
e0c1b49f5b674c Nick Terrell 2020-09-11  371          size_t const length2 = 
MEM_readLE16(istart+2);
e0c1b49f5b674c Nick Terrell 2020-09-11  372          size_t const length3 = 
MEM_readLE16(istart+4);
e0c1b49f5b674c Nick Terrell 2020-09-11  373          size_t const length4 = 
cSrcSize - (length1 + length2 + length3 + 6);
e0c1b49f5b674c Nick Terrell 2020-09-11  374          const BYTE* const istart1 
= istart + 6;  /* jumpTable */
e0c1b49f5b674c Nick Terrell 2020-09-11  375          const BYTE* const istart2 
= istart1 + length1;
e0c1b49f5b674c Nick Terrell 2020-09-11  376          const BYTE* const istart3 
= istart2 + length2;
e0c1b49f5b674c Nick Terrell 2020-09-11  377          const BYTE* const istart4 
= istart3 + length3;
e0c1b49f5b674c Nick Terrell 2020-09-11  378          const size_t segmentSize = 
(dstSize+3) / 4;
e0c1b49f5b674c Nick Terrell 2020-09-11  379          BYTE* const opStart2 = 
ostart + segmentSize;
e0c1b49f5b674c Nick Terrell 2020-09-11  380          BYTE* const opStart3 = 
opStart2 + segmentSize;
e0c1b49f5b674c Nick Terrell 2020-09-11  381          BYTE* const opStart4 = 
opStart3 + segmentSize;
e0c1b49f5b674c Nick Terrell 2020-09-11  382          BYTE* op1 = ostart;
e0c1b49f5b674c Nick Terrell 2020-09-11  383          BYTE* op2 = opStart2;
e0c1b49f5b674c Nick Terrell 2020-09-11  384          BYTE* op3 = opStart3;
e0c1b49f5b674c Nick Terrell 2020-09-11  385          BYTE* op4 = opStart4;
e0c1b49f5b674c Nick Terrell 2020-09-11  386          DTableDesc const dtd = 
HUF_getDTableDesc(DTable);
e0c1b49f5b674c Nick Terrell 2020-09-11  387          U32 const dtLog = 
dtd.tableLog;
e0c1b49f5b674c Nick Terrell 2020-09-11  388          U32 endSignal = 1;
e0c1b49f5b674c Nick Terrell 2020-09-11  389  
e0c1b49f5b674c Nick Terrell 2020-09-11  390          if (length4 > cSrcSize) 
return ERROR(corruption_detected);   /* overflow */
e0c1b49f5b674c Nick Terrell 2020-09-11  391          CHECK_F( 
BIT_initDStream(&bitD1, istart1, length1) );
e0c1b49f5b674c Nick Terrell 2020-09-11  392          CHECK_F( 
BIT_initDStream(&bitD2, istart2, length2) );
e0c1b49f5b674c Nick Terrell 2020-09-11  393          CHECK_F( 
BIT_initDStream(&bitD3, istart3, length3) );
e0c1b49f5b674c Nick Terrell 2020-09-11  394          CHECK_F( 
BIT_initDStream(&bitD4, istart4, length4) );
e0c1b49f5b674c Nick Terrell 2020-09-11  395  
e0c1b49f5b674c Nick Terrell 2020-09-11  396          /* up to 16 symbols per 
loop (4 symbols per stream) in 64-bit mode */
e0c1b49f5b674c Nick Terrell 2020-09-11 @397          for ( ; (endSignal) & (op4 
< olimit) ; ) {
e0c1b49f5b674c Nick Terrell 2020-09-11  398              
HUF_DECODE_SYMBOLX1_2(op1, &bitD1);
e0c1b49f5b674c Nick Terrell 2020-09-11  399              
HUF_DECODE_SYMBOLX1_2(op2, &bitD2);
e0c1b49f5b674c Nick Terrell 2020-09-11  400              
HUF_DECODE_SYMBOLX1_2(op3, &bitD3);
e0c1b49f5b674c Nick Terrell 2020-09-11  401              
HUF_DECODE_SYMBOLX1_2(op4, &bitD4);
e0c1b49f5b674c Nick Terrell 2020-09-11  402              
HUF_DECODE_SYMBOLX1_1(op1, &bitD1);
e0c1b49f5b674c Nick Terrell 2020-09-11  403              
HUF_DECODE_SYMBOLX1_1(op2, &bitD2);
e0c1b49f5b674c Nick Terrell 2020-09-11  404              
HUF_DECODE_SYMBOLX1_1(op3, &bitD3);
e0c1b49f5b674c Nick Terrell 2020-09-11  405              
HUF_DECODE_SYMBOLX1_1(op4, &bitD4);
e0c1b49f5b674c Nick Terrell 2020-09-11  406              
HUF_DECODE_SYMBOLX1_2(op1, &bitD1);
e0c1b49f5b674c Nick Terrell 2020-09-11  407              
HUF_DECODE_SYMBOLX1_2(op2, &bitD2);
e0c1b49f5b674c Nick Terrell 2020-09-11  408              
HUF_DECODE_SYMBOLX1_2(op3, &bitD3);
e0c1b49f5b674c Nick Terrell 2020-09-11  409              
HUF_DECODE_SYMBOLX1_2(op4, &bitD4);
e0c1b49f5b674c Nick Terrell 2020-09-11  410              
HUF_DECODE_SYMBOLX1_0(op1, &bitD1);
e0c1b49f5b674c Nick Terrell 2020-09-11  411              
HUF_DECODE_SYMBOLX1_0(op2, &bitD2);
e0c1b49f5b674c Nick Terrell 2020-09-11  412              
HUF_DECODE_SYMBOLX1_0(op3, &bitD3);
e0c1b49f5b674c Nick Terrell 2020-09-11  413              
HUF_DECODE_SYMBOLX1_0(op4, &bitD4);
e0c1b49f5b674c Nick Terrell 2020-09-11  414              endSignal &= 
BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished;
e0c1b49f5b674c Nick Terrell 2020-09-11  415              endSignal &= 
BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished;
e0c1b49f5b674c Nick Terrell 2020-09-11  416              endSignal &= 
BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished;
e0c1b49f5b674c Nick Terrell 2020-09-11  417              endSignal &= 
BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished;
e0c1b49f5b674c Nick Terrell 2020-09-11  418          }
e0c1b49f5b674c Nick Terrell 2020-09-11  419  
e0c1b49f5b674c Nick Terrell 2020-09-11  420          /* check corruption */
e0c1b49f5b674c Nick Terrell 2020-09-11  421          /* note : should not be 
necessary : op# advance in lock step, and we control op4.
e0c1b49f5b674c Nick Terrell 2020-09-11  422           *        but curiously, 
binary generated by gcc 7.2 & 7.3 with -mbmi2 runs faster when >=1 test is 
present */
e0c1b49f5b674c Nick Terrell 2020-09-11  423          if (op1 > opStart2) return 
ERROR(corruption_detected);
e0c1b49f5b674c Nick Terrell 2020-09-11  424          if (op2 > opStart3) return 
ERROR(corruption_detected);
e0c1b49f5b674c Nick Terrell 2020-09-11  425          if (op3 > opStart4) return 
ERROR(corruption_detected);
e0c1b49f5b674c Nick Terrell 2020-09-11  426          /* note : op4 supposed 
already verified within main loop */
e0c1b49f5b674c Nick Terrell 2020-09-11  427  
e0c1b49f5b674c Nick Terrell 2020-09-11  428          /* finish bitStreams one 
by one */
e0c1b49f5b674c Nick Terrell 2020-09-11  429          HUF_decodeStreamX1(op1, 
&bitD1, opStart2, dt, dtLog);
e0c1b49f5b674c Nick Terrell 2020-09-11  430          HUF_decodeStreamX1(op2, 
&bitD2, opStart3, dt, dtLog);
e0c1b49f5b674c Nick Terrell 2020-09-11  431          HUF_decodeStreamX1(op3, 
&bitD3, opStart4, dt, dtLog);
e0c1b49f5b674c Nick Terrell 2020-09-11  432          HUF_decodeStreamX1(op4, 
&bitD4, oend,     dt, dtLog);
e0c1b49f5b674c Nick Terrell 2020-09-11  433  
e0c1b49f5b674c Nick Terrell 2020-09-11  434          /* check */
e0c1b49f5b674c Nick Terrell 2020-09-11  435          { U32 const endCheck = 
BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) 
& BIT_endOfDStream(&bitD4);
e0c1b49f5b674c Nick Terrell 2020-09-11  436            if (!endCheck) return 
ERROR(corruption_detected); }
e0c1b49f5b674c Nick Terrell 2020-09-11  437  
e0c1b49f5b674c Nick Terrell 2020-09-11  438          /* decoded size */
e0c1b49f5b674c Nick Terrell 2020-09-11  439          return dstSize;
e0c1b49f5b674c Nick Terrell 2020-09-11  440      }
e0c1b49f5b674c Nick Terrell 2020-09-11  441  }
e0c1b49f5b674c Nick Terrell 2020-09-11  442  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to