From 64570766cb35b4884fe58d3b81ca945cab800ebd Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 12 Jun 2025 13:28:47 +0200 Subject: [PATCH] ucode: update to Git HEAD (2025-06-09) 54b00e3b1fa9 ubus: fix double registry clear on disconnect 69521b55855c ubus: fix use-after-free on deferred request reply() method 22e8c16d9deb debug: fix crash when passing tagged string to getinfo() 2c9eea5174d6 ubus: use ucv_resource_create_ex for connections/channels 0a4cf4b7e71a ubus: use ucv_resource_create_ex for for ubus.request resources 99ee75a69cd3 ubus: use ucv_resource_create_ex for ubus.deferred resources f085a42b977f ubus: use ucv_resource_create_ex for objects 94ad17d13a0d ubus: use ucv_resource_create_ex for ubus.notify resources a3fa47fdda3e ubus: use ucv_resource_create_ex for ubus.listener resources 9ab5fa869dec ubus: use ucv_resource_create_ex for ubus.subscriber resources be92ebd70633 CI: debian: install cmake package fd202fd40bd1 socket: respect port argument in sockinst.connect() 767c209b917b socket: properly handle async `connect(2)` errors in socket.connect() 37ac8f112af6 socket: improve port argument validation in sockinst.connect() Fixes: https://github.com/jow-/ucode/issues/302 Fixes: https://github.com/jow-/ucode/issues/303 Signed-off-by: Felix Fietkau --- package/utils/ucode/Makefile | 6 ++--- ...-double-registry-clear-on-disconnect.patch | 26 ------------------ ...er-free-on-deferred-request-reply-me.patch | 27 ------------------- 3 files changed, 3 insertions(+), 56 deletions(-) delete mode 100644 package/utils/ucode/patches/010-ubus-fix-double-registry-clear-on-disconnect.patch delete mode 100644 package/utils/ucode/patches/020-ubus-fix-use-after-free-on-deferred-request-reply-me.patch diff --git a/package/utils/ucode/Makefile b/package/utils/ucode/Makefile index ed155af02f3..d92979af48f 100644 --- a/package/utils/ucode/Makefile +++ b/package/utils/ucode/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/jow-/ucode.git -PKG_SOURCE_DATE:=2025-05-11 -PKG_SOURCE_VERSION:=d5b3a9dc1091dd28cf6f0f60cd34fc322ef27717 -PKG_MIRROR_HASH:=cd8af9d5ac28e2530b56015a3f2fcf6f36062546cac8b23a5f7b75b367209b54 +PKG_SOURCE_DATE:=2025-06-09 +PKG_SOURCE_VERSION:=37ac8f112af63e64c1ea2d13ae63c134b62a5681 +PKG_MIRROR_HASH:=f98b1d75be427e2540d5b8320834efde738899b41a0390f3af13ab56c660b7fb PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC diff --git a/package/utils/ucode/patches/010-ubus-fix-double-registry-clear-on-disconnect.patch b/package/utils/ucode/patches/010-ubus-fix-double-registry-clear-on-disconnect.patch deleted file mode 100644 index 70b6a99be79..00000000000 --- a/package/utils/ucode/patches/010-ubus-fix-double-registry-clear-on-disconnect.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Felix Fietkau -Date: Fri, 9 May 2025 11:57:57 +0200 -Subject: [PATCH] ubus: fix double registry clear on disconnect - -Set c->registry_index to -1 in order to ensure that the resource free path -does not clobber registry items of unrelated connections. - -Signed-off-by: Felix Fietkau ---- - ---- a/lib/ubus.c -+++ b/lib/ubus.c -@@ -2375,8 +2375,11 @@ uc_ubus_channel_disconnect_cb(struct ubu - c->ctx.sock.fd = -1; - } - -- if (c->registry_index >= 0) -- connection_reg_clear(c->vm, c->registry_index); -+ if (c->registry_index >= 0) { -+ int idx = c->registry_index; -+ c->registry_index = -1; -+ connection_reg_clear(c->vm, idx); -+ } - } - - static uc_value_t * diff --git a/package/utils/ucode/patches/020-ubus-fix-use-after-free-on-deferred-request-reply-me.patch b/package/utils/ucode/patches/020-ubus-fix-use-after-free-on-deferred-request-reply-me.patch deleted file mode 100644 index 142595a5bdb..00000000000 --- a/package/utils/ucode/patches/020-ubus-fix-use-after-free-on-deferred-request-reply-me.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Felix Fietkau -Date: Mon, 12 May 2025 12:43:44 +0200 -Subject: [PATCH] ubus: fix use-after-free on deferred request reply() method - -Hold a reference to the defer resource as long as it is still needed - -Signed-off-by: Felix Fietkau ---- - ---- a/lib/ubus.c -+++ b/lib/ubus.c -@@ -636,6 +636,7 @@ uc_ubus_call_user_cb(uc_ubus_deferred_t - uc_value_t *this, *func; - - request_reg_get(defer->vm, defer->registry_index, &this, &func, NULL, NULL); -+ ucv_get(this); - - if (ucv_is_callable(func)) { - uc_vm_stack_push(defer->vm, ucv_get(this)); -@@ -648,6 +649,7 @@ uc_ubus_call_user_cb(uc_ubus_deferred_t - } - - request_reg_clear(defer->vm, defer->registry_index); -+ ucv_put(this); - } - - static void -- 2.47.2