diff --git a/lib/libc/rpc/rpcb_prot.c b/lib/libc/rpc/rpcb_prot.c index 3427c467b6ba..c8afe7eaeadf 100644 --- a/lib/libc/rpc/rpcb_prot.c +++ b/lib/libc/rpc/rpcb_prot.c @@ -1,4 +1,4 @@ -/* $NetBSD: rpcb_prot.c,v 1.6 2005/06/01 05:46:35 lukem Exp $ */ +/* $NetBSD: rpcb_prot.c,v 1.7 2006/03/19 02:37:59 christos Exp $ */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for @@ -39,7 +39,7 @@ #if 0 static char sccsid[] = "@(#)rpcb_prot.c 1.9 89/04/21 Copyr 1984 Sun Micro"; #else -__RCSID("$NetBSD: rpcb_prot.c,v 1.6 2005/06/01 05:46:35 lukem Exp $"); +__RCSID("$NetBSD: rpcb_prot.c,v 1.7 2006/03/19 02:37:59 christos Exp $"); #endif #endif @@ -154,7 +154,7 @@ xdr_rpcblist_ptr(xdrs, rp) * the case of freeing we must remember the next object * before we free the current object ... */ - if (freeing) + if (freeing && *rp) next = (*rp)->rpcb_next; if (! xdr_reference(xdrs, (caddr_t *)rp, (u_int)sizeof (rpcblist), (xdrproc_t)xdr_rpcb)) { @@ -168,7 +168,7 @@ xdr_rpcblist_ptr(xdrs, rp) * gets nulled out by the xdr_reference * but next itself survives. */ - } else { + } else if (*rp) { rp = &((*rp)->rpcb_next); } }