lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 9 Nov 2020 12:44:51 +0100
From:   Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To:     Guenter Roeck <linux@...ck-us.net>
Cc:     stable@...r.kernel.org, linux-kernel@...r.kernel.org,
        Arnaldo Carvalho de Melo <acme@...hat.com>
Subject: Re: [PATCH v4.19] tools: perf: Fix build error in v4.19.y

On Sat, Nov 07, 2020 at 04:31:24PM -0800, Guenter Roeck wrote:
> perf may fail to build in v4.19.y with the following error.
> 
> util/evsel.c: In function ‘perf_evsel__exit’:
> util/util.h:25:28: error:
> 	passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type
> 
> This is observed (at least) with gcc v6.5.0. The underlying problem is
> the following statement.
> 	zfree(&evsel->pmu_name);
> evsel->pmu_name is decared 'const *'. zfree in turn is defined as
> 	#define zfree(ptr) ({ free(*ptr); *ptr = NULL; })
> and thus passes the const * to free(). The problem is not seen
> in the upstream kernel since zfree() has been rewritten there.
> 
> The problem has been introduced into v4.19.y with the backport of upstream
> commit d4953f7ef1a2 (perf parse-events: Fix 3 use after frees found with
> clang ASAN).
> 
> One possible fix of this problem would be to not declare pmu_name
> as const. This patch chooses to typecast the parameter of zfree()
> to void *, following the guidance from the upstream kernel which
> does the same since commit 7f7c536f23e6a ("tools lib: Adopt
> zalloc()/zfree() from tools/perf")
> 
> Fixes: a0100a363098 ("perf parse-events: Fix 3 use after frees found with clang ASAN")
> Signed-off-by: Guenter Roeck <linux@...ck-us.net>
> ---
> This patch only applies to v4.19.y and has no upstream equivalent.
> 
>  tools/perf/util/util.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
> index dc58254a2b69..8c01b2cfdb1a 100644
> --- a/tools/perf/util/util.h
> +++ b/tools/perf/util/util.h
> @@ -22,7 +22,7 @@ static inline void *zalloc(size_t size)
>  	return calloc(1, size);
>  }
>  
> -#define zfree(ptr) ({ free(*ptr); *ptr = NULL; })
> +#define zfree(ptr) ({ free((void *)*ptr); *ptr = NULL; })
>  
>  struct dirent;
>  struct nsinfo;
> -- 
> 2.17.1
> 

Now queued up, thanks.

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ