Subject: lib/15802: libc encodes/decodes wrong rpc packet of RPCBPROC_GETSTAT.
To: None <gnats-bugs@gnats.netbsd.org>
From: None <mrt@notwork.org>
List: netbsd-bugs
Date: 03/03/2002 23:52:39
>Number: 15802
>Category: lib
>Synopsis: libc encodes/decodes wrong rpc packet of RPCBPROC_GETSTAT.
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: lib-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Mar 03 23:53:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Murata, Shuuichirou
>Release: NetBSD 1.5ZA
>Organization:
ASTEC, Inc.
>Environment:
NetBSD tanaquil 1.5ZA NetBSD 1.5ZA (TANAQUIL) #73: Sat Mar 2 16:34:59 JST 2002
mrt@tanaquil:/usr/src/sys/arch/i386/compile/TANAQUIL i386
>Description:
Currnet implementation of rpc library in libc encodes/decodes wrong rpc
packet of RPCBPROC_GETSTAT of rpcbind4.
RFC 1833 requires rpcbs_rmtcalllist_ptr as fifth element of struct
rpcb_stat, but NetBSD's doesn't have this.
Thus, NetBSD's "rpcinfo -m" cannot talk to Solaris's rpcbind and vice
versa.
>How-To-Repeat:
On NetBSD, do "rpcinfo -m" to another implementation of rpcbind4 (such
as Solaris).
>Fix:
Apply following. (Sorry for tab <-> space conversion)
Index: rpcb_st_xdr.c
===================================================================
RCS file: /cvs/cvsroot/basesrc/lib/libc/rpc/rpcb_st_xdr.c,v
retrieving revision 1.5
diff -u -r1.5 rpcb_st_xdr.c
--- rpcb_st_xdr.c 2001/01/04 14:57:17 1.5
+++ rpcb_st_xdr.c 2002/03/04 07:40:51
@@ -262,6 +262,9 @@
if (!xdr_rpcbs_addrlist_ptr(xdrs, &objp->addrinfo)) {
return (FALSE);
}
+ if (!xdr_rpcbs_rmtcalllist_ptr(xdrs, &objp->rmtinfo)) {
+ return (FALSE);
+ }
return (TRUE);
}
>Release-Note:
>Audit-Trail:
>Unformatted: