From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754285AbcEaN1u (ORCPT ); Tue, 31 May 2016 09:27:50 -0400 Received: from mail.kernel.org ([198.145.29.136]:40456 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753290AbcEaN1s (ORCPT ); Tue, 31 May 2016 09:27:48 -0400 Date: Tue, 31 May 2016 22:27:43 +0900 From: Masami Hiramatsu To: Wang Nan Cc: , , , Arnaldo Carvalho de Melo , He Kuang , Jiri Olsa , Masami Hiramatsu , Namhyung Kim , Zefan Li Subject: Re: [PATCH] perf tools: Fix perf_evlist__alloc_mmap() failure path Message-Id: <20160531222743.90eea3df64157f6ed3c097ef@kernel.org> In-Reply-To: <1464699975-230440-1-git-send-email-wangnan0@huawei.com> References: <1464699975-230440-1-git-send-email-wangnan0@huawei.com> X-Mailer: Sylpheed 3.4.3 (GTK+ 2.24.28; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 31 May 2016 13:06:15 +0000 Wang Nan wrote: > If zalloc fail, setting evlist->mmap[i].fd is unsafe. > perf_evlist__alloc_mmap() should fail right after zalloc() fail. Good catch!! Reviewed-by: Masami Hiramatsu Thanks! > > Signed-off-by: Wang Nan > Cc: Arnaldo Carvalho de Melo > Cc: He Kuang > Cc: Jiri Olsa > Cc: Masami Hiramatsu > Cc: Namhyung Kim > Cc: Zefan Li > Cc: pi3orama@163.com > --- > tools/perf/util/evlist.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > index e0f3094..1b918aa 100644 > --- a/tools/perf/util/evlist.c > +++ b/tools/perf/util/evlist.c > @@ -946,9 +946,12 @@ static int perf_evlist__alloc_mmap(struct perf_evlist *evlist) > if (cpu_map__empty(evlist->cpus)) > evlist->nr_mmaps = thread_map__nr(evlist->threads); > evlist->mmap = zalloc(evlist->nr_mmaps * sizeof(struct perf_mmap)); > + if (!evlist->mmap) > + return -ENOMEM; > + > for (i = 0; i < evlist->nr_mmaps; i++) > evlist->mmap[i].fd = -1; > - return evlist->mmap != NULL ? 0 : -ENOMEM; > + return 0; > } > > struct mmap_params { > -- > 1.8.3.4 > -- Masami Hiramatsu