X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=json_script.c;h=73c25022e11c8d42e23077c8b08146b28ba30abd;hp=8e7f5265ed4d42e9a784b6bcef14b818e6bebe78;hb=2b89f2169b83be17441835758a53782a41aef976;hpb=30e6cca9396f770f3387fff8bef0a6645571c46c diff --git a/json_script.c b/json_script.c index 8e7f526..73c2502 100644 --- a/json_script.c +++ b/json_script.c @@ -333,12 +333,16 @@ static int handle_expr_or(struct json_call *call, struct blob_attr *expr) static int handle_expr_not(struct json_call *call, struct blob_attr *expr) { struct blob_attr *tb[3]; + int ret; json_get_tuple(expr, tb, BLOBMSG_TYPE_ARRAY, 0); if (!tb[1]) return -1; - return json_process_expr(call, tb[1]); + ret = json_process_expr(call, tb[1]); + if (ret < 0) + return ret; + return !ret; } static const struct json_handler expr[] = { @@ -592,8 +596,7 @@ static void __json_script_file_free(struct json_script_file *f) next = f->next; free(f); - if (next) - return __json_script_file_free(next); + __json_script_file_free(next); } void