These fields in the rpcbind GETADDR call are being passed uninitialized
to CLNT_CALL. In the case of x86_64 at least, this usually leads to a
segfault. On x86, it sometimes causes segfaults and other times causes
garbage to be sent on the wire.
rpcbind generally ignores the r_owner field for calls that come in over
the wire, so it really doesn't matter what we send in that slot. We just
need to send something. The reference implementation from Sun seems to
send a blank string. Have ours follow suit.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
parms.r_addr = NULL;
parms.r_prog = program;
parms.r_vers = version;
+ parms.r_netid = nconf->nc_netid;
+
+ /*
+ * According to wire captures, the reference implementation
+ * (OpenSolaris) sends a blank string here too.
+ */
+ parms.r_owner = "";
/*
* Use default total timeout if no timeout is specified.