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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 5 Mar 2020 11:53:04 -0300
From:   Arnaldo Carvalho de Melo <arnaldo.melo@...il.com>
To:     Tommi Rantala <tommi.t.rantala@...ia.com>
Cc:     Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...hat.com>,
        Mark Rutland <mark.rutland@....com>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
        Jiri Olsa <jolsa@...hat.com>,
        Namhyung Kim <namhyung@...nel.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        Darren Hart <dvhart@...radead.org>,
        Changbin Du <changbin.du@...el.com>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/3] perf bench: Clear struct sigaction before
 sigaction() syscall

Em Thu, Mar 05, 2020 at 10:37:14AM +0200, Tommi Rantala escreveu:
> Avoid garbage in sigaction structs used in sigaction() syscalls.
> Valgrind is complaining about it.

Thanks, applied.

- Arnaldo
 
> Signed-off-by: Tommi Rantala <tommi.t.rantala@...ia.com>
> ---
>  tools/perf/bench/epoll-ctl.c           | 1 +
>  tools/perf/bench/epoll-wait.c          | 1 +
>  tools/perf/bench/futex-hash.c          | 1 +
>  tools/perf/bench/futex-lock-pi.c       | 1 +
>  tools/perf/bench/futex-requeue.c       | 1 +
>  tools/perf/bench/futex-wake-parallel.c | 1 +
>  tools/perf/bench/futex-wake.c          | 1 +
>  7 files changed, 7 insertions(+)
> 
> diff --git a/tools/perf/bench/epoll-ctl.c b/tools/perf/bench/epoll-ctl.c
> index bb617e5688412..63e2520017d81 100644
> --- a/tools/perf/bench/epoll-ctl.c
> +++ b/tools/perf/bench/epoll-ctl.c
> @@ -313,6 +313,7 @@ int bench_epoll_ctl(int argc, const char **argv)
>  		exit(EXIT_FAILURE);
>  	}
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> diff --git a/tools/perf/bench/epoll-wait.c b/tools/perf/bench/epoll-wait.c
> index 7af694437f4ea..5336e628b404c 100644
> --- a/tools/perf/bench/epoll-wait.c
> +++ b/tools/perf/bench/epoll-wait.c
> @@ -427,6 +427,7 @@ int bench_epoll_wait(int argc, const char **argv)
>  		exit(EXIT_FAILURE);
>  	}
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> diff --git a/tools/perf/bench/futex-hash.c b/tools/perf/bench/futex-hash.c
> index 8ba0c3330a9a2..c441aa446c7f8 100644
> --- a/tools/perf/bench/futex-hash.c
> +++ b/tools/perf/bench/futex-hash.c
> @@ -137,6 +137,7 @@ int bench_futex_hash(int argc, const char **argv)
>  	if (!cpu)
>  		goto errmem;
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> diff --git a/tools/perf/bench/futex-lock-pi.c b/tools/perf/bench/futex-lock-pi.c
> index d0cae8125423f..27c6e1944cbed 100644
> --- a/tools/perf/bench/futex-lock-pi.c
> +++ b/tools/perf/bench/futex-lock-pi.c
> @@ -161,6 +161,7 @@ int bench_futex_lock_pi(int argc, const char **argv)
>  	if (!cpu)
>  		err(EXIT_FAILURE, "calloc");
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> diff --git a/tools/perf/bench/futex-requeue.c b/tools/perf/bench/futex-requeue.c
> index a00a6891447ab..7a15c2e610228 100644
> --- a/tools/perf/bench/futex-requeue.c
> +++ b/tools/perf/bench/futex-requeue.c
> @@ -128,6 +128,7 @@ int bench_futex_requeue(int argc, const char **argv)
>  	if (!cpu)
>  		err(EXIT_FAILURE, "cpu_map__new");
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> diff --git a/tools/perf/bench/futex-wake-parallel.c b/tools/perf/bench/futex-wake-parallel.c
> index a053cf2b70397..cd2b81a845acb 100644
> --- a/tools/perf/bench/futex-wake-parallel.c
> +++ b/tools/perf/bench/futex-wake-parallel.c
> @@ -234,6 +234,7 @@ int bench_futex_wake_parallel(int argc, const char **argv)
>  		exit(EXIT_FAILURE);
>  	}
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> diff --git a/tools/perf/bench/futex-wake.c b/tools/perf/bench/futex-wake.c
> index 58906e9499bb0..2dfcef3e371e4 100644
> --- a/tools/perf/bench/futex-wake.c
> +++ b/tools/perf/bench/futex-wake.c
> @@ -136,6 +136,7 @@ int bench_futex_wake(int argc, const char **argv)
>  	if (!cpu)
>  		err(EXIT_FAILURE, "calloc");
>  
> +	memset(&act, 0, sizeof(act));
>  	sigfillset(&act.sa_mask);
>  	act.sa_sigaction = toggle_done;
>  	sigaction(SIGINT, &act, NULL);
> -- 
> 2.21.1
> 

-- 

- Arnaldo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ