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>
This commit is contained in:
Jo-Philipp Wich 2022-09-12 15:36:14 +02:00
parent 0d02243086
commit e80d0b2d77

View file

@ -304,9 +304,14 @@ rpc_ucode_validate_call_args(struct ubus_object *obj, const char *ubus_method_na
} }
/* named argument not found in policy */ /* 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; goto inval;
} }
}
*res = rpc_ucode_blob_array_to_ucv(&script->vm, blob_data(msg), blob_len(msg), true); *res = rpc_ucode_blob_array_to_ucv(&script->vm, blob_data(msg), blob_len(msg), true);