From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752974AbcEJO4O (ORCPT ); Tue, 10 May 2016 10:56:14 -0400 Received: from mail.kernel.org ([198.145.29.136]:45189 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751159AbcEJO4M (ORCPT ); Tue, 10 May 2016 10:56:12 -0400 Date: Tue, 10 May 2016 11:56:07 -0300 From: Arnaldo Carvalho de Melo To: Masami Hiramatsu Cc: linux-kernel@vger.kernel.org, Namhyung Kim , Peter Zijlstra , Ingo Molnar Subject: Re: [PATCH perf/core v3 3/8] perf help: Make check_emacsclient_version to check strbuf APIs Message-ID: <20160510145607.GH13209@kernel.org> References: <20160510054649.6158.75771.stgit@devbox> <20160510054716.6158.11755.stgit@devbox> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160510054716.6158.11755.stgit@devbox> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, May 10, 2016 at 02:47:17PM +0900, Masami Hiramatsu escreveu: > Make check_emacsclient_version() to check the return > value of strbuf APIs so that it can handle errors in > strbuf. > --- You forgot to add the S-o-B, since you provided it in the previous submission, I'm adding it now. - Arnaldo > tools/perf/builtin-help.c | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c > index bc1de9b..f9830c9 100644 > --- a/tools/perf/builtin-help.c > +++ b/tools/perf/builtin-help.c > @@ -61,6 +61,7 @@ static int check_emacsclient_version(void) > struct child_process ec_process; > const char *argv_ec[] = { "emacsclient", "--version", NULL }; > int version; > + int ret = -1; > > /* emacsclient prints its version number on stderr */ > memset(&ec_process, 0, sizeof(ec_process)); > @@ -71,7 +72,10 @@ static int check_emacsclient_version(void) > fprintf(stderr, "Failed to start emacsclient.\n"); > return -1; > } > - strbuf_read(&buffer, ec_process.err, 20); > + if (strbuf_read(&buffer, ec_process.err, 20) < 0) { > + fprintf(stderr, "Failed to read emacsclient version\n"); > + goto out; > + } > close(ec_process.err); > > /* > @@ -82,8 +86,7 @@ static int check_emacsclient_version(void) > > if (prefixcmp(buffer.buf, "emacsclient")) { > fprintf(stderr, "Failed to parse emacsclient version.\n"); > - strbuf_release(&buffer); > - return -1; > + goto out; > } > > version = atoi(buffer.buf + strlen("emacsclient")); > @@ -92,12 +95,11 @@ static int check_emacsclient_version(void) > fprintf(stderr, > "emacsclient version '%d' too old (< 22).\n", > version); > - strbuf_release(&buffer); > - return -1; > - } > - > + } else > + ret = 0; > +out: > strbuf_release(&buffer); > - return 0; > + return ret; > } > > static void exec_woman_emacs(const char *path, const char *page)