mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-30 01:52:51 +00:00 
			
		
		
		
	ucode: add refcount fixes for rtnl/nl80211
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		 Felix Fietkau
					Felix Fietkau
				
			
				
					committed by
					
						 John Crispin
						John Crispin
					
				
			
			
				
	
			
			
			 John Crispin
						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