[OpenWrt-Devel] [PATCH v2 08/10] json_script: fix logic invert of handle_expr_not().

Yousong Zhou yszhou4tech at gmail.com
Thu Dec 11 23:00:07 EST 2014


On 12 December 2014 at 00:52, Felix Fietkau <nbd at openwrt.org> wrote:
> On 2014-11-12 14:59, Yousong Zhou wrote:
>> Signed-off-by: Yousong Zhou <yszhou4tech at 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
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list