Re: [PATCH] plugin python: Adjust the handling after PyRun_String() failed

From: Steven Rostedt
Date: Wed Apr 26 2017 - 22:47:54 EST


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