diff options
Diffstat (limited to 'src/clnt_bcast.c')
-rw-r--r-- | src/clnt_bcast.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/clnt_bcast.c b/src/clnt_bcast.c index fef7a4b..140407b 100644 --- a/src/clnt_bcast.c +++ b/src/clnt_bcast.c @@ -586,13 +586,12 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, struct netbuf *np; #ifdef PORTMAP struct netbuf taddr; - struct sockaddr_in *sin; + struct sockaddr_in sin; if (pmap_flag && pmap_reply_flag) { - sin = (struct sockaddr_in *) - (void *)&fdlist[i].raddr; - sin->sin_port = - htons((u_short)port); + memcpy(&sin, &fdlist[i].raddr, sizeof(sin)); + sin.sin_port = htons((u_short)port); + memcpy(&fdlist[i].raddr, &sin, sizeof(sin)); taddr.len = taddr.maxlen = sizeof(fdlist[i].raddr); taddr.buf = &fdlist[i].raddr; |