Message ID | 1415800763-14311-9-git-send-email-yszhou4tech@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
On 2014-11-12 14:59, Yousong Zhou wrote: > Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> > --- > json_script.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/json_script.c b/json_script.c > index 0ec7b38..0d51f79 100644 > --- a/json_script.c > +++ b/json_script.c > @@ -338,7 +338,7 @@ static int handle_expr_not(struct json_call *call, struct blob_attr *expr) > if (!tb[1]) > return -1; > > - return json_process_expr(call, tb[1]); > + return !json_process_expr(call, tb[1]); Simply adding ! is not enough. This needs to check for ret < 0 for proper error handling. - Felix
On 12 December 2014 at 00:52, Felix Fietkau <nbd@openwrt.org> wrote: > On 2014-11-12 14:59, Yousong Zhou wrote: >> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> >> --- >> json_script.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/json_script.c b/json_script.c >> index 0ec7b38..0d51f79 100644 >> --- a/json_script.c >> +++ b/json_script.c >> @@ -338,7 +338,7 @@ static int handle_expr_not(struct json_call *call, struct blob_attr *expr) >> if (!tb[1]) >> return -1; >> >> - return json_process_expr(call, tb[1]); >> + return !json_process_expr(call, tb[1]); > Simply adding ! is not enough. This needs to check for ret < 0 for > proper error handling. Yes. I will fix this. BTW, I see that blobmsg_realloc_string_buffer() should return NULL if blob_buf_grow() fails, but I can not decide the proper return value of eval_string() in this case. Currently it's non-zero for non-terminated variable reference. I tend to add various ERR_JSON_SCRIPT_OOM and json_script_err2str() for use with handle_error(), but I am afraid that it may break too much packages yousong
diff --git a/json_script.c b/json_script.c index 0ec7b38..0d51f79 100644 --- a/json_script.c +++ b/json_script.c @@ -338,7 +338,7 @@ static int handle_expr_not(struct json_call *call, struct blob_attr *expr) if (!tb[1]) return -1; - return json_process_expr(call, tb[1]); + return !json_process_expr(call, tb[1]); } static const struct json_handler expr[] = {
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> --- json_script.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)