Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754545Ab2JPIQa (ORCPT ); Tue, 16 Oct 2012 04:16:30 -0400 Received: from mail-da0-f46.google.com ([209.85.210.46]:59759 "EHLO mail-da0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754163Ab2JPIQ2 (ORCPT ); Tue, 16 Oct 2012 04:16:28 -0400 MIME-Version: 1.0 In-Reply-To: <20121016043916.GB28828@linux.vnet.ibm.com> References: <1350351452-9737-1-git-send-email-hyc.lee@gmail.com> <507CE06D.8050806@hitachi.com> <20121016043916.GB28828@linux.vnet.ibm.com> Date: Tue, 16 Oct 2012 17:16:27 +0900 Message-ID: Subject: Re: [PATCH] perf probe: convert_name_to_addr() allocated the wrong size buffer for a function name From: Hyeoncheol Lee To: Srikar Dronamraju Cc: Masami Hiramatsu , acme@ghostprotocols.net, LKML , "yrl.pp-manager.tt@hitachi.com" Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2120 Lines: 76 Hi, 2012/10/16 Srikar Dronamraju : > * Masami Hiramatsu [2012-10-16 13:19:57]: > >> (2012/10/16 10:37), Hyeoncheol Lee wrote: >> > convert_name_to_addr() allocated sizeof(char *) * MAX_PROBE_ARGS >> > bytes for a function name >> >> Yeah, that one was from my laziness... >> > > Guess not your fault, but mine. > >> > >> > Cc: Masami Hiramatsu >> > Cc: Srikar Dronamraju >> > Signed-off-by: Hyeoncheol Lee >> > --- >> > tools/perf/util/probe-event.c | 5 +++-- >> > 1 file changed, 3 insertions(+), 2 deletions(-) >> > >> > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c >> > index 49a256e..bb40ed4 100644 >> > --- a/tools/perf/util/probe-event.c >> > +++ b/tools/perf/util/probe-event.c >> > @@ -2352,13 +2352,14 @@ static int convert_name_to_addr(struct perf_probe_event *pev, const char *exec) >> > free(exec_copy); >> > } >> > free(pp->function); >> > - pp->function = zalloc(sizeof(char *) * MAX_PROBE_ARGS); >> > + pp->function = zalloc(sizeof(char) * >> > + (3 + sizeof(unsigned long long) * 2)); >> >> Could you comment that this is enough long here? > > Also can we move the arith into a macro? > I will do. >> >> > if (!pp->function) { >> > ret = -ENOMEM; >> > pr_warning("Failed to allocate memory by zalloc.\n"); >> > goto out; >> > } >> > - e_snprintf(pp->function, MAX_PROBE_ARGS, "0x%llx", vaddr); >> > + sprintf(pp->function, "0x%llx", vaddr); >> >> And at least we should use snprintf instead of sprintf... >> (I think ret = e_snprintf(...) is better) >> > > Agree. Yes > >> > ret = 0; >> > >> > out: >> > >> > > -- > Thanks and Regards > Srikar > Thank you for your comment. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/