> On 14 Jun 2022, at 15:47, Alexander Bluhm <alexander.bl...@gmx.net> wrote:
> 
> Hi,
> 
> I made a little mistake when adding acquire refcount.  The timeout
> does not decrement the counter to 0 properly.
> 
> We have one reference count for the lists, and one for the timeout
> handler.  When the timout fires, it has to decrement the referenc
> to itself.  Then the ipa is removed from the lists and decremented
> again.
> 
> ok?
> 
> bluhm
> 

ok mvs@

> Index: netinet/ip_spd.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_spd.c,v
> retrieving revision 1.116
> diff -u -p -r1.116 ip_spd.c
> --- netinet/ip_spd.c  4 May 2022 15:29:58 -0000       1.116
> +++ netinet/ip_spd.c  14 Jun 2022 12:08:37 -0000
> @@ -714,7 +714,10 @@ ipsp_delete_acquire_timer(void *v)
> {
>       struct ipsec_acquire *ipa = v;
> 
> -     ipsp_delete_acquire(ipa);
> +     mtx_enter(&ipsec_acquire_mtx);
> +     refcnt_rele(&ipa->ipa_refcnt);
> +     ipsp_delete_acquire_locked(ipa);
> +     mtx_leave(&ipsec_acquire_mtx);
> }
> 
> /*
> 

Reply via email to