u32                     r_vers;
        u32                     r_prot;
        unsigned short          r_port;
-       char *                  r_netid;
-       char                    r_addr[RPCBIND_MAXUADDRLEN];
-       char *                  r_owner;
+       const char *            r_netid;
+       const char *            r_addr;
+       const char *            r_owner;
 };
 
 static struct rpc_procinfo rpcb_procedures2[];
        map->r_prot = xprt->prot;
        map->r_port = 0;
        map->r_xprt = xprt_get(xprt);
-       map->r_netid = (char *)rpc_peeraddr2str(clnt, RPC_DISPLAY_NETID);
-       memcpy(map->r_addr,
-              rpc_peeraddr2str(rpcb_clnt, RPC_DISPLAY_UNIVERSAL_ADDR),
-              sizeof(map->r_addr));
+       map->r_netid = rpc_peeraddr2str(clnt, RPC_DISPLAY_NETID);
+       map->r_addr = rpc_peeraddr2str(rpcb_clnt, RPC_DISPLAY_UNIVERSAL_ADDR);
        map->r_owner = RPCB_OWNER_STRING;       /* ignored for GETADDR */
 
        child = rpcb_call_async(rpcb_clnt, map, xprt->bind_index);