Hello!
In article <1048258764.1214.28.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> (at 21
Mar 2003 08:59:23 -0600), Tom Lendacky <toml@xxxxxxxxxx> says:
> memcpy(&x->id.daddr, daddr, sizeof(x->sel.daddr));
> memcpy(&x->props.saddr, &tmpl->saddr, sizeof(x->props.saddr));
> if (ipv6_addr_any((struct in6_addr*)&x->props.saddr))
> - memcpy(&x->props.saddr, &saddr, sizeof(x->sel.saddr));
> + memcpy(&x->props.saddr, saddr, sizeof(x->props.saddr));
this fix is ok. however
> atomic_inc(&x0->refcnt);
> } else if (create && (x0 = xfrm_state_alloc()) != NULL) {
> - memcpy(x0->sel.daddr.a6, daddr, sizeof(struct in6_addr));
> - memcpy(x0->sel.saddr.a6, saddr, sizeof(struct in6_addr));
> + memcpy(&x0->sel.daddr.a6, daddr, sizeof(struct in6_addr));
> + memcpy(&x0->sel.saddr.a6, saddr, sizeof(struct in6_addr));
> x0->sel.prefixlen_d = 128;
> x0->sel.prefixlen_s = 128;
> - memcpy(x0->props.saddr.a6, saddr, sizeof(struct in6_addr));
> + memcpy(&x0->props.saddr.a6, saddr, sizeof(struct in6_addr));
> x0->km.state = XFRM_STATE_ACQ;
> - memcpy(x0->id.daddr.a6, daddr, sizeof(struct in6_addr));
> + memcpy(&x0->id.daddr.a6, daddr, sizeof(struct in6_addr));
> x0->id.proto = proto;
> x0->props.family = AF_INET6;
> x0->props.mode = mode;
these are not correct.
--
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@xxxxxxxxxxxxxx>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA
|