Re: [PATCH] perf util: Fix compression checks returning -1 as bool

From: Ian Rogers
Date: Fri Aug 22 2025 - 12:35:02 EST


On Fri, Aug 22, 2025 at 9:28 AM Yunseong Kim <ysk@xxxxxxxxxxx> wrote:
>
> The lzma_is_compressed and gzip_is_compressed functions are declared
> to return a "bool" type, but in case of an error (e.g., file open
> failure), they incorrectly returned -1.
>
> A bool type is a boolean value that is either true or false.
> Returning -1 for a bool return type can lead to unexpected behavior
> and may violate strict type-checking in some compilers.
>
> Fix the return value to be false in error cases, ensuring the function
> adheres to its declared return type improves for preventing potential
> bugs related to type mismatch.
>
> Fixes: 4b57fd44b61b ("perf tools: Add lzma_is_compressed function")
> Fixes: 88c74dc76a30 ("perf tools: Add gzip_is_compressed function")
> Signed-off-by: Yunseong Kim <ysk@xxxxxxxxxxx>

Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/util/lzma.c | 2 +-
> tools/perf/util/zlib.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/lzma.c b/tools/perf/util/lzma.c
> index bbcd2ffcf4bd..c355757ed391 100644
> --- a/tools/perf/util/lzma.c
> +++ b/tools/perf/util/lzma.c
> @@ -120,7 +120,7 @@ bool lzma_is_compressed(const char *input)
> ssize_t rc;
>
> if (fd < 0)
> - return -1;
> + return false;
>
> rc = read(fd, buf, sizeof(buf));
> close(fd);
> diff --git a/tools/perf/util/zlib.c b/tools/perf/util/zlib.c
> index 78d2297c1b67..1f7c06523059 100644
> --- a/tools/perf/util/zlib.c
> +++ b/tools/perf/util/zlib.c
> @@ -88,7 +88,7 @@ bool gzip_is_compressed(const char *input)
> ssize_t rc;
>
> if (fd < 0)
> - return -1;
> + return false;
>
> rc = read(fd, buf, sizeof(buf));
> close(fd);
> --
> 2.50.0
>