M ip/ipaux.c => ip/ipaux.c +3 -1
@@ 260,8 260,10 @@ v4tov6(uchar *v6, uchar *v4)
int
v6tov4(uchar *v4, uchar *v6)
{
- if(memcmp(v6, v4prefix, IPv4off) != 0)
+ if(memcmp(v6, v4prefix, IPv4off) != 0){
+ memset(v4, 0, 4);
return -1;
+ }
memmove(v4, v6 + IPv4off, IPv4addrlen);
return 0;
}
M ip/udp.c => ip/udp.c +1 -2
@@ 215,8 215,7 @@ udpkick(Conv *c, int)
hnputs(uh->udpdport, c->rport);
if(ipcmp(c->laddr, IPnoaddr) == 0)
findlocalip(f, c->laddr, c->raddr);
- if(v6tov4(uh->udpsrc, c->laddr) < 0)
- memset(uh->udpsrc, 0, sizeof(uh->udpsrc));
+ v6tov4(uh->udpsrc, c->laddr);
break;
}
hnputs(uh->udpsport, c->lport);