summaryrefslogtreecommitdiffstats
path: root/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c')
-rw-r--r--sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c b/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c
index 112e4da..4350bf4 100644
--- a/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c
+++ b/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c
@@ -37,7 +37,7 @@
* o The enclosed hack of STREAMS support is pretty sick and most likely
* broken.
*
- * $Id: ip_rpcb_pxy.c,v 2.25.2.3 2005/02/04 10:22:56 darrenr Exp $
+ * $Id: ip_rpcb_pxy.c,v 2.25.2.6 2007/01/17 11:34:54 darrenr Exp $
*/
#define IPF_RPCB_PROXY
@@ -290,6 +290,7 @@ ippr_rpcb_out(fin, aps, nat)
/* Perform basic variable initialization. */
rs = (rpcb_session_t *)aps->aps_data;
+ rx = NULL;
m = fin->fin_m;
off = (char *)fin->fin_dp - (char *)fin->fin_ip;
@@ -307,6 +308,8 @@ ippr_rpcb_out(fin, aps, nat)
COPYDATA(m, off, dlen, (caddr_t)&rm->rm_msgbuf);
rm->rm_buflen = dlen;
+ rx = NULL; /* XXX gcc */
+
/* Send off to decode reply. */
rv = ippr_rpcb_decoderep(fin, nat, rs, rm, &rx);
@@ -1156,6 +1159,8 @@ ippr_rpcb_getnat(fin, nat, proto, port)
/* Generate dummy fr_info */
bcopy((char *)fin, (char *)&fi, sizeof(fi));
+ fi.fin_state = NULL;
+ fi.fin_nat = NULL;
fi.fin_out = 0;
fi.fin_src = fin->fin_dst;
fi.fin_dst = nat->nat_outip;
@@ -1191,8 +1196,9 @@ ippr_rpcb_getnat(fin, nat, proto, port)
* no use for this lock, so simply unlock it if necessary.
*/
is = fr_stlookup(&fi, &tcp, NULL);
- if (is != NULL)
+ if (is != NULL) {
RWLOCK_EXIT(&ipf_state);
+ }
RWLOCK_EXIT(&ipf_nat);
@@ -1271,7 +1277,7 @@ ippr_rpcb_getnat(fin, nat, proto, port)
return(-1);
}
if (fi.fin_state != NULL)
- fr_statederef(&fi, (ipstate_t **)&fi.fin_state);
+ fr_statederef((ipstate_t **)&fi.fin_state);
}
return(0);
OpenPOWER on IntegriCloud