浏览代码

ucode: pass-through `ubus_rpc_session` argument

Allow the special `ubus_rpc_session` method call argument even if it is not
specified in the policy.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Jo-Philipp Wich 1 年之前
父节点
当前提交
e80d0b2d77
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      ucode.c

+ 6 - 1
ucode.c

@@ -304,8 +304,13 @@ rpc_ucode_validate_call_args(struct ubus_object *obj, const char *ubus_method_na
 		}
 
 		/* named argument not found in policy */
-		if (!found)
+		if (!found) {
+			/* allow special ubus_rpc_session argument */
+			if (!strcmp("ubus_rpc_session", (char *)hdr->name) && blob_id(attr) == BLOBMSG_TYPE_STRING)
+			    continue;
+
 			goto inval;
+		}
 	}
 
 	*res = rpc_ucode_blob_array_to_ucv(&script->vm, blob_data(msg), blob_len(msg), true);