]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
rpcd: backport ucode fix
authorFelix Fietkau <nbd@nbd.name>
Sat, 9 Aug 2025 14:01:33 +0000 (16:01 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 9 Aug 2025 14:01:48 +0000 (16:01 +0200)
ucode: adjust for new ext resource type
ucv_resource_dataptr always returns null for resources with embedded data.

Fixes: https://github.com/openwrt/rpcd/issues/17
Fixes: https://github.com/openwrt/luci/issues/7878
Fixes: https://github.com/openwrt/openwrt/issues/19726
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/system/rpcd/patches/100-ucode-adjust-for-new-ext-resource-type.patch [new file with mode: 0644]

diff --git a/package/system/rpcd/patches/100-ucode-adjust-for-new-ext-resource-type.patch b/package/system/rpcd/patches/100-ucode-adjust-for-new-ext-resource-type.patch
new file mode 100644 (file)
index 0000000..0b0acd4
--- /dev/null
@@ -0,0 +1,20 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 9 Aug 2025 15:55:11 +0200
+Subject: [PATCH] ucode: adjust for new ext resource type
+
+ucv_resource_dataptr always returns null for resources with embedded data.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/ucode.c
++++ b/ucode.c
+@@ -449,7 +449,7 @@ rpc_ucode_script_call(struct ubus_contex
+               res = uc_vm_stack_pop(&script->vm);
+               /* The handler function invoked a nested aync ubus request and returned it */
+-              if (ucv_resource_dataptr(res, "ubus.deferred")) {
++              if (ucv_resource_data(res, "ubus.deferred")) {
+                       /* Install guard timer in case the reply callback is never called */
+                       callctx->timeout.cb = rpc_ucode_request_timeout;
+                       uloop_timeout_set(&callctx->timeout, request_timeout);