[PATCH][RFC] lib: zstd: resolve maybe-uninitialized warning

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Jun 14 01:55:29 PDT 2023


Hello Yegor,

On 14.06.23 10:09, yegorslists at googlemail.com wrote:
> From: Yegor Yefremov <yegorslists at googlemail.com>
> 
> Perform memset() at the very beginning of the ZSTD_getFrameParams()
> routine.

I saw this too a while back and I came to the conclusion that this
is a false positive. I wasn't able to reproduce this with
GCC 12, but saw it with GCC 11 IIRC.

Cheers,
Ahmad

> 
> Signed-off-by: Yegor Yefremov <yegorslists at googlemail.com>
> ---
>  lib/zstd/decompress.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/zstd/decompress.c b/lib/zstd/decompress.c
> index 19bf712881..78df7d660a 100644
> --- a/lib/zstd/decompress.c
> +++ b/lib/zstd/decompress.c
> @@ -207,6 +207,7 @@ static size_t ZSTD_frameHeaderSize(const void *src, size_t srcSize)
>  size_t ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const void *src, size_t srcSize)
>  {
>  	const BYTE *ip = (const BYTE *)src;
> +	memset(fparamsPtr, 0, sizeof(*fparamsPtr));
>  
>  	if (srcSize < ZSTD_frameHeaderSize_prefix)
>  		return ZSTD_frameHeaderSize_prefix;
> @@ -214,7 +215,6 @@ size_t ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const void *src, size_t
>  		if ((ZSTD_readLE32(src) & 0xFFFFFFF0U) == ZSTD_MAGIC_SKIPPABLE_START) {
>  			if (srcSize < ZSTD_skippableHeaderSize)
>  				return ZSTD_skippableHeaderSize; /* magic number + skippable frame length */
> -			memset(fparamsPtr, 0, sizeof(*fparamsPtr));
>  			fparamsPtr->frameContentSize = ZSTD_readLE32((const char *)src + 4);
>  			fparamsPtr->windowSize = 0; /* windowSize==0 means a frame is skippable */
>  			return 0;

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list