From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753149AbcEJUfK (ORCPT ); Tue, 10 May 2016 16:35:10 -0400 Received: from terminus.zytor.com ([198.137.202.10]:58364 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751917AbcEJUfI (ORCPT ); Tue, 10 May 2016 16:35:08 -0400 Date: Tue, 10 May 2016 13:34:34 -0700 From: tip-bot for Masami Hiramatsu Message-ID: Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, mhiramat@kernel.org, peterz@infradead.org, tglx@linutronix.de, acme@redhat.com, hpa@zytor.com, namhyung@kernel.org Reply-To: tglx@linutronix.de, peterz@infradead.org, mhiramat@kernel.org, namhyung@kernel.org, hpa@zytor.com, acme@redhat.com, linux-kernel@vger.kernel.org, mingo@kernel.org In-Reply-To: <20160510054716.6158.11755.stgit@devbox> References: <20160510054716.6158.11755.stgit@devbox> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf help: Make check_emacsclient_version to check strbuf APIs Git-Commit-ID: b72ca4039099e953f1ea2dbd58c201b14feb6605 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: b72ca4039099e953f1ea2dbd58c201b14feb6605 Gitweb: http://git.kernel.org/tip/b72ca4039099e953f1ea2dbd58c201b14feb6605 Author: Masami Hiramatsu AuthorDate: Tue, 10 May 2016 14:47:17 +0900 Committer: Arnaldo Carvalho de Melo CommitDate: Tue, 10 May 2016 11:56:14 -0300 perf help: Make check_emacsclient_version to check strbuf APIs Make check_emacsclient_version() to check the return value of strbuf APIs so that it can handle errors in strbuf. Signed-off-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20160510054716.6158.11755.stgit@devbox Signed-off-by: Arnaldo Carvalho de Melo --- 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)