Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968542AbdD0Law (ORCPT ); Thu, 27 Apr 2017 07:30:52 -0400 Received: from mail.kernel.org ([198.145.29.136]:38296 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935655AbdD0Lan (ORCPT ); Thu, 27 Apr 2017 07:30:43 -0400 Date: Thu, 27 Apr 2017 07:30:33 -0400 From: Steven Rostedt To: Taeung Song Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH] plugin python: Adjust the handling after PyRun_String() failed Message-ID: <20170427073033.3a5e16dd@gandalf.local.home> In-Reply-To: <09569170-b800-dfca-8267-d0c2a23df85b@gmail.com> References: <1493250381-25278-1-git-send-email-treeze.taeung@gmail.com> <20170426224720.58733a9a@grimm.local.home> <09569170-b800-dfca-8267-d0c2a23df85b@gmail.com> X-Mailer: Claws Mail 3.14.0 (GTK+ 2.24.31; x86_64-pc-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 Content-Length: 1735 Lines: 64 On Thu, 27 Apr 2017 11:52:14 +0900 Taeung Song wrote: > On 04/27/2017 11:47 AM, Steven Rostedt wrote: > > On Thu, 27 Apr 2017 08:46:21 +0900 > > Taeung Song wrote: > > > >> Even though PyRun_String() failed, > >> just 0 will be returned but we need to return -1 > >> that means error status, so fix it. > >> > >> Signed-off-by: Taeung Song > >> --- > >> plugin_python.c | 5 +++-- > >> 1 file changed, 3 insertions(+), 2 deletions(-) > >> > >> diff --git a/plugin_python.c b/plugin_python.c > >> index 2997679..dcfad0f 100644 > >> --- a/plugin_python.c > >> +++ b/plugin_python.c > >> @@ -24,7 +24,7 @@ static int load_plugin(struct pevent *pevent, const char *path, > >> const char *name, void *data) > >> { > >> PyObject *globals = data; > >> - int err; > >> + int err, ret = 0; > > > > Hmm, we can either reuse err. > > > > But return value of asprintf() can be more 1, > when it succeeded. > So I think it is better the below you said. What I meant was to simply reset err = 0; and set it if we failed and returned that. No need to add more variables. > > >> int len = strlen(path) + strlen(name) + 2; > >> int nlen = strlen(name) + 1; > >> char *full = malloc(len); > >> @@ -50,12 +50,13 @@ static int load_plugin(struct pevent *pevent, const char *path, > >> if (!res) { > >> fprintf(stderr, "failed loading %s\n", full); > >> PyErr_Print(); > >> + ret = -1; > >> } else > >> Py_DECREF(res); > >> > >> free(load); > >> > >> - return 0; > >> + return ret; > > > > or do a: return res ? 0 : -1; > > > > -- Steve > > > > Okey! I'll resent the patch after modifying this! But this is fine as well. -- Steve