tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 60eac8672b5b6061ec07499c0f1b79f6d94311ce commit: 2aa14b1ab2c41a4fe41efae80d58bb77da91f19f [2780/3509] zstd: import usptream v1.5.2 config: x86_64-randconfig-m001 compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot New smatch warnings: arch/x86/boot/compressed/../../../../lib/zstd/decompress/zstd_decompress_block.c:1577 ZSTD_decompressSequences_body() warn: inconsistent indenting Old smatch warnings: arch/x86/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:598 HUF_decompress4X1_usingDTable_internal_body() warn: maybe use && instead of & arch/x86/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:598 HUF_decompress4X1_usingDTable_internal_body() warn: maybe use && instead of & arch/x86/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:1292 HUF_decompress4X2_usingDTable_internal_body() warn: maybe use && instead of & arch/x86/boot/compressed/../../../../lib/zstd/decompress/huf_decompress.c:1292 HUF_decompress4X2_usingDTable_internal_body() warn: maybe use && instead of & arch/x86/boot/compressed/../../../../lib/zstd/decompress/zstd_decompress_block.c:894 ZSTD_execSequenceEnd() warn: inconsistent indenting arch/x86/boot/compressed/../../../../lib/zstd/decompress/zstd_decompress_block.c:942 ZSTD_execSequenceEndSplitLitBuffer() warn: inconsistent indenting arch/x86/boot/compressed/../../../../lib/zstd/decompress/zstd_decompress_block.c:1009 ZSTD_execSequence() warn: inconsistent indenting arch/x86/boot/compressed/../../../../lib/zstd/decompress/zstd_decompress_block.c:1943 ZSTD_decompressSequencesLong() warn: inconsistent indenting arch/x86/boot/compressed/misc.c:298 parse_elf() warn: ignoring unreachable code. vim +1577 arch/x86/boot/compressed/../../../../lib/zstd/decompress/zstd_decompress_block.c 1536 1537 FORCE_INLINE_TEMPLATE size_t 1538 DONT_VECTORIZE 1539 ZSTD_decompressSequences_body(ZSTD_DCtx* dctx, 1540 void* dst, size_t maxDstSize, 1541 const void* seqStart, size_t seqSize, int nbSeq, 1542 const ZSTD_longOffset_e isLongOffset, 1543 const int frame) 1544 { 1545 const BYTE* ip = (const BYTE*)seqStart; 1546 const BYTE* const iend = ip + seqSize; 1547 BYTE* const ostart = (BYTE*)dst; 1548 BYTE* const oend = dctx->litBufferLocation == ZSTD_not_in_dst ? ostart + maxDstSize : dctx->litBuffer; 1549 BYTE* op = ostart; 1550 const BYTE* litPtr = dctx->litPtr; 1551 const BYTE* const litEnd = litPtr + dctx->litSize; 1552 const BYTE* const prefixStart = (const BYTE*)(dctx->prefixStart); 1553 const BYTE* const vBase = (const BYTE*)(dctx->virtualStart); 1554 const BYTE* const dictEnd = (const BYTE*)(dctx->dictEnd); 1555 DEBUGLOG(5, "ZSTD_decompressSequences_body"); 1556 (void)frame; 1557 1558 /* Regen sequences */ 1559 if (nbSeq) { 1560 seqState_t seqState; 1561 dctx->fseEntropy = 1; 1562 { U32 i; for (i = 0; i < ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; } 1563 RETURN_ERROR_IF( 1564 ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend - ip)), 1565 corruption_detected, ""); 1566 ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); 1567 ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); 1568 ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); 1569 assert(dst != NULL); 1570 1571 ZSTD_STATIC_ASSERT( 1572 BIT_DStream_unfinished < BIT_DStream_completed && 1573 BIT_DStream_endOfBuffer < BIT_DStream_completed && 1574 BIT_DStream_completed < BIT_DStream_overflow); 1575 1576 #if defined(__x86_64__) > 1577 __asm__(".p2align 6"); 1578 __asm__("nop"); 1579 # if __GNUC__ >= 7 1580 __asm__(".p2align 5"); 1581 __asm__("nop"); 1582 __asm__(".p2align 3"); 1583 # else 1584 __asm__(".p2align 4"); 1585 __asm__("nop"); 1586 __asm__(".p2align 3"); 1587 # endif 1588 #endif 1589 1590 for ( ; ; ) { 1591 seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset); 1592 size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litEnd, prefixStart, vBase, dictEnd); 1593 #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) 1594 assert(!ZSTD_isError(oneSeqSize)); 1595 if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); 1596 #endif 1597 if (UNLIKELY(ZSTD_isError(oneSeqSize))) 1598 return oneSeqSize; 1599 DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); 1600 op += oneSeqSize; 1601 if (UNLIKELY(!--nbSeq)) 1602 break; 1603 BIT_reloadDStream(&(seqState.DStream)); 1604 } 1605 1606 /* check if reached exact end */ 1607 DEBUGLOG(5, "ZSTD_decompressSequences_body: after decode loop, remaining nbSeq : %i", nbSeq); 1608 RETURN_ERROR_IF(nbSeq, corruption_detected, ""); 1609 RETURN_ERROR_IF(BIT_reloadDStream(&seqState.DStream) < BIT_DStream_completed, corruption_detected, ""); 1610 /* save reps for next block */ 1611 { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } 1612 } 1613 1614 /* last literal segment */ 1615 { size_t const lastLLSize = litEnd - litPtr; 1616 RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); 1617 if (op != NULL) { 1618 ZSTD_memcpy(op, litPtr, lastLLSize); 1619 op += lastLLSize; 1620 } 1621 } 1622 1623 return op-ostart; 1624 } 1625 -- 0-DAY CI Kernel Test Service https://01.org/lkp