mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 17:42:41 +00:00
ucode: add refcount fixes for rtnl/nl80211
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
committed by
John Crispin
parent
2a145ba46a
commit
e0aa0eec98
48
feeds/ucentral/ucode/patches/0008-ref_fixes.patch
Normal file
48
feeds/ucentral/ucode/patches/0008-ref_fixes.patch
Normal file
@@ -0,0 +1,48 @@
|
||||
--- a/lib/rtnl.c
|
||||
+++ b/lib/rtnl.c
|
||||
@@ -3704,7 +3704,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs
|
||||
break;
|
||||
}
|
||||
|
||||
- ucv_array_set(listener_registry, i + 1, cb_func);
|
||||
+ ucv_array_set(listener_registry, i + 1, ucv_get(cb_func));
|
||||
l = xalloc(sizeof(*l));
|
||||
l->index = i;
|
||||
if (!uc_nl_fill_cmds(l->cmds, cmds)) {
|
||||
@@ -3714,7 +3714,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs
|
||||
}
|
||||
|
||||
rv = uc_resource_new(listener_type, l);
|
||||
- ucv_array_set(listener_registry, i, rv);
|
||||
+ ucv_array_set(listener_registry, i, ucv_get(rv));
|
||||
listener_vm = vm;
|
||||
|
||||
return rv;
|
||||
@@ -4150,5 +4150,7 @@ void uc_module_init(uc_vm_t *vm, uc_valu
|
||||
listener_type = uc_type_declare(vm, "rtnl.listener", listener_fns, uc_nl_listener_free);
|
||||
listener_registry = ucv_array_new(vm);
|
||||
|
||||
+ uc_vm_registry_set(vm, "rtnl.registry", listener_registry);
|
||||
+
|
||||
register_constants(vm, scope);
|
||||
}
|
||||
--- a/lib/nl80211.c
|
||||
+++ b/lib/nl80211.c
|
||||
@@ -2560,7 +2560,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs
|
||||
break;
|
||||
}
|
||||
|
||||
- ucv_array_set(listener_registry, i + 1, cb_func);
|
||||
+ ucv_array_set(listener_registry, i + 1, ucv_get(cb_func));
|
||||
l = xalloc(sizeof(*l));
|
||||
l->index = i;
|
||||
if (!uc_nl_fill_cmds(l->cmds, cmds)) {
|
||||
@@ -2570,7 +2570,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs
|
||||
}
|
||||
|
||||
rv = uc_resource_new(listener_type, l);
|
||||
- ucv_array_set(listener_registry, i, rv);
|
||||
+ ucv_array_set(listener_registry, i, ucv_get(rv));
|
||||
listener_vm = vm;
|
||||
|
||||
return rv;
|
||||
Reference in New Issue
Block a user