X-Git-Url: http://git.dolda2000.com/gitweb/?p=doldaconnect.git;a=blobdiff_plain;f=daemon%2Fnet.c;h=fa84564c050739792204f910dc0cd4c2b22db2d6;hp=242f10e70a9a3460b2dbf028ae3704514a5e7560;hb=7dddb55155279338957831e7122d5d266acde0f6;hpb=5afb0d147fcc162c25b18cc5729d4ceedb9badd3 diff --git a/daemon/net.c b/daemon/net.c index 242f10e..fa84564 100644 --- a/daemon/net.c +++ b/daemon/net.c @@ -365,13 +365,16 @@ static void freesock(struct socket *sk) void putsock(struct socket *sk) { + struct socket *back; + if(--(sk->refcount) < 0) { flog(LOG_CRIT, "BUG: socket refcount < 0"); abort(); } if((sk->refcount == 0) && (sk->back->refcount == 0)) { + back = sk->back; freesock(sk); - freesock(sk->back); + freesock(back); } }