Jelajahi Sumber

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 tahun lalu
induk
melakukan
e80d0b2d77
1 mengubah file dengan 6 tambahan dan 1 penghapusan
  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);