From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753933AbbGJIPN (ORCPT ); Fri, 10 Jul 2015 04:15:13 -0400 Received: from terminus.zytor.com ([198.137.202.10]:47734 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753837AbbGJIOk (ORCPT ); Fri, 10 Jul 2015 04:14:40 -0400 Date: Fri, 10 Jul 2015 01:14:19 -0700 From: tip-bot for Arnaldo Carvalho de Melo Message-ID: Cc: mingo@kernel.org, eranian@google.com, hpa@zytor.com, acme@redhat.com, jolsa@redhat.com, namhyung@kernel.org, dsahern@gmail.com, linux-kernel@vger.kernel.org, fweisbec@gmail.com, tglx@linutronix.de, bp@suse.de, adrian.hunter@intel.com Reply-To: mingo@kernel.org, eranian@google.com, hpa@zytor.com, acme@redhat.com, jolsa@redhat.com, namhyung@kernel.org, dsahern@gmail.com, linux-kernel@vger.kernel.org, fweisbec@gmail.com, tglx@linutronix.de, bp@suse.de, adrian.hunter@intel.com To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/urgent] perf thread_map: Fix the sizeof() calculation for map entries Git-Commit-ID: 08ae217b8d44986062fe3648c5bb83816d5bc00f X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 08ae217b8d44986062fe3648c5bb83816d5bc00f Gitweb: http://git.kernel.org/tip/08ae217b8d44986062fe3648c5bb83816d5bc00f Author: Arnaldo Carvalho de Melo AuthorDate: Thu, 9 Jul 2015 12:14:43 -0300 Committer: Arnaldo Carvalho de Melo CommitDate: Thu, 9 Jul 2015 12:28:53 -0300 perf thread_map: Fix the sizeof() calculation for map entries When we started adding extra stuff per array entry, growing the size of those entries to more than sizeof(pid_t), we had to convert those sizeof operations to the more robust sizeof(map->map[0]) idiom, that is future proof, i.e. if/when we add more stuff to those entries, that expression will produce the new per-entry size. And besides that, we need to zero out those extra fields, that sometimes may not get filled, like when we couldn't care less about the comms, since we don't need those, but since we will try freeing it at thread_map__delete(), we better fix it. That is why a thread_map__realloc() was provided. But that method wasn't used in thread_map__new_by_uid(), fix it. Reported-by: Ingo Molnar Fixes: 792402fd5c0a ("perf thrad_map: Add comm string into array") Fixes: 9d7e8c3a96e5 ("perf tools: Add thread_map__(alloc|realloc) helpers") Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-6a0swlm6m8lnu3wpjv284hkb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/thread_map.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/perf/util/thread_map.c b/tools/perf/util/thread_map.c index da7646d..292ae2c 100644 --- a/tools/perf/util/thread_map.c +++ b/tools/perf/util/thread_map.c @@ -136,8 +136,7 @@ struct thread_map *thread_map__new_by_uid(uid_t uid) if (grow) { struct thread_map *tmp; - tmp = realloc(threads, (sizeof(*threads) + - max_threads * sizeof(pid_t))); + tmp = thread_map__realloc(threads, max_threads); if (tmp == NULL) goto out_free_namelist;