diff options
Diffstat (limited to 'contrib/ipfilter/ip_auth.c')
-rw-r--r-- | contrib/ipfilter/ip_auth.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/contrib/ipfilter/ip_auth.c b/contrib/ipfilter/ip_auth.c index e4ad347..2a73079 100644 --- a/contrib/ipfilter/ip_auth.c +++ b/contrib/ipfilter/ip_auth.c @@ -104,7 +104,7 @@ extern struct ifqueue ipintrq; /* ip packet input queue */ #endif #if !defined(lint) -static const char rcsid[] = "@(#)$Id: ip_auth.c,v 2.11.2.17 2002/03/06 09:44:10 darrenr Exp $"; +static const char rcsid[] = "@(#)$Id: ip_auth.c,v 2.11.2.19 2002/04/23 14:57:27 darrenr Exp $"; #endif @@ -405,6 +405,7 @@ fr_authioctlloop: RWLOCK_EXIT(&ipf_auth); return 0; } + RWLOCK_EXIT(&ipf_auth); #ifdef _KERNEL # if SOLARIS mutex_enter(&ipf_authmx); @@ -417,7 +418,6 @@ fr_authioctlloop: error = SLEEP(&fr_authnext, "fr_authnext"); # endif #endif - RWLOCK_EXIT(&ipf_auth); if (!error) goto fr_authioctlloop; break; @@ -447,7 +447,7 @@ fr_authioctlloop: #ifdef _KERNEL if (m && au->fra_info.fin_out) { # if SOLARIS - error = fr_qout(fra->fra_q, m); + error = (fr_qout(fra->fra_q, m) == 0) ? EINVAL : 0; # else /* SOLARIS */ struct route ro; @@ -469,7 +469,7 @@ fr_authioctlloop: fr_authstats.fas_sendok++; } else if (m) { # if SOLARIS - error = fr_qin(fra->fra_q, m); + error = (fr_qin(fra->fra_q, m) == 0) ? EINVAL : 0; # else /* SOLARIS */ ifq = &ipintrq; if (IF_QFULL(ifq)) { |