linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] plugin python: Adjust the handling after PyRun_String() failed
@ 2017-04-26 23:46 Taeung Song
  2017-04-27  2:47 ` Steven Rostedt
  0 siblings, 1 reply; 5+ messages in thread
From: Taeung Song @ 2017-04-26 23:46 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-kernel

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 <treeze.taeung@gmail.com>
---
 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;
 	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;
 }
 
 int PEVENT_PLUGIN_LOADER(struct pevent *pevent)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] plugin python: Adjust the handling after PyRun_String() failed
  2017-04-26 23:46 [PATCH] plugin python: Adjust the handling after PyRun_String() failed Taeung Song
@ 2017-04-27  2:47 ` Steven Rostedt
  2017-04-27  2:52   ` Taeung Song
  0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2017-04-27  2:47 UTC (permalink / raw)
  To: Taeung Song; +Cc: linux-kernel

On Thu, 27 Apr 2017 08:46:21 +0900
Taeung Song <treeze.taeung@gmail.com> 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 <treeze.taeung@gmail.com>
> ---
>  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.

>  	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

>  }
>  
>  int PEVENT_PLUGIN_LOADER(struct pevent *pevent)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] plugin python: Adjust the handling after PyRun_String() failed
  2017-04-27  2:47 ` Steven Rostedt
@ 2017-04-27  2:52   ` Taeung Song
  2017-04-27 11:30     ` Steven Rostedt
  0 siblings, 1 reply; 5+ messages in thread
From: Taeung Song @ 2017-04-27  2:52 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-kernel



On 04/27/2017 11:47 AM, Steven Rostedt wrote:
> On Thu, 27 Apr 2017 08:46:21 +0900
> Taeung Song <treeze.taeung@gmail.com> 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 <treeze.taeung@gmail.com>
>> ---
>>  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.

>>  	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!


Thanks,
Taeung

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] plugin python: Adjust the handling after PyRun_String() failed
  2017-04-27  2:52   ` Taeung Song
@ 2017-04-27 11:30     ` Steven Rostedt
  2017-04-27 12:57       ` Taeung Song
  0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2017-04-27 11:30 UTC (permalink / raw)
  To: Taeung Song; +Cc: linux-kernel

On Thu, 27 Apr 2017 11:52:14 +0900
Taeung Song <treeze.taeung@gmail.com> wrote:

> On 04/27/2017 11:47 AM, Steven Rostedt wrote:
> > On Thu, 27 Apr 2017 08:46:21 +0900
> > Taeung Song <treeze.taeung@gmail.com> 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 <treeze.taeung@gmail.com>
> >> ---
> >>  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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] plugin python: Adjust the handling after PyRun_String() failed
  2017-04-27 11:30     ` Steven Rostedt
@ 2017-04-27 12:57       ` Taeung Song
  0 siblings, 0 replies; 5+ messages in thread
From: Taeung Song @ 2017-04-27 12:57 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-kernel



On 04/27/2017 08:30 PM, Steven Rostedt wrote:
> On Thu, 27 Apr 2017 11:52:14 +0900
> Taeung Song <treeze.taeung@gmail.com> wrote:
>
>> On 04/27/2017 11:47 AM, Steven Rostedt wrote:
>>> On Thu, 27 Apr 2017 08:46:21 +0900
>>> Taeung Song <treeze.taeung@gmail.com> 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 <treeze.taeung@gmail.com>
>>>> ---
>>>>  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.
>

I understood ! :)

>>
>>>>  	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
>

Thank you !!
Have a nice day :)

Taeung

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-04-27 12:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-26 23:46 [PATCH] plugin python: Adjust the handling after PyRun_String() failed Taeung Song
2017-04-27  2:47 ` Steven Rostedt
2017-04-27  2:52   ` Taeung Song
2017-04-27 11:30     ` Steven Rostedt
2017-04-27 12:57       ` Taeung Song

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).