Index: sys/netinet/libalias/alias.c =================================================================== --- sys/netinet/libalias/alias.c (revision 361967) +++ sys/netinet/libalias/alias.c (working copy) @@ -443,7 +443,8 @@ IcmpAliasIn(struct libalias *la, struct ip *pip) { struct icmp *ic; - int dlen, iresult; + uint16_t dlen; + int iresult; LIBALIAS_LOCK_ASSERT(la); @@ -740,7 +741,7 @@ { struct udphdr *ud; struct alias_link *lnk; - int dlen; + uint16_t dlen; LIBALIAS_LOCK_ASSERT(la); @@ -839,7 +840,8 @@ u_short dest_port; u_short proxy_server_port; int proxy_type; - int dlen, error; + uint16_t dlen; + int error; LIBALIAS_LOCK_ASSERT(la); @@ -944,7 +946,7 @@ { struct tcphdr *tc; struct alias_link *lnk; - int dlen; + uint16_t dlen; LIBALIAS_LOCK_ASSERT(la); @@ -1069,7 +1071,8 @@ static int TcpAliasOut(struct libalias *la, struct ip *pip, int maxpacketsize, int create) { - int dlen, proxy_type, error; + uint16_t dlen; + int proxy_type, error; u_short dest_port; u_short proxy_server_port; struct in_addr dest_address; @@ -1398,14 +1401,20 @@ error = find_handler(IN, IP, la, pip, &ad); if (error == 0) iresult = PKT_ALIAS_OK; - else + else { + struct in_addr dst = pip->ip_dst; + u_short sum = pip->ip_sum; iresult = ProtoAliasIn(la, pip->ip_src, - &pip->ip_dst, pip->ip_p, &pip->ip_sum); + &dst, pip->ip_p, &sum); + } } break; - default: - iresult = ProtoAliasIn(la, pip->ip_src, &pip->ip_dst, - pip->ip_p, &pip->ip_sum); + default: { + struct in_addr dst = pip->ip_dst; + u_short sum = pip->ip_sum; + iresult = ProtoAliasIn(la, pip->ip_src, &dst, + pip->ip_p, &sum); + } break; } @@ -1421,8 +1430,10 @@ } } } else { - iresult = FragmentIn(la, pip->ip_src, &pip->ip_dst, pip->ip_id, - &pip->ip_sum); + struct in_addr dst = pip->ip_dst; + u_short sum = pip->ip_sum; + iresult = FragmentIn(la, pip->ip_src, &dst, pip->ip_id, + &sum); } getout: @@ -1555,18 +1566,26 @@ error = find_handler(OUT, IP, la, pip, &ad); if (error == 0) iresult = PKT_ALIAS_OK; - else - iresult = ProtoAliasOut(la, &pip->ip_src, - pip->ip_dst, pip->ip_p, &pip->ip_sum, create); + else { + struct in_addr src = pip->ip_src; + u_short sum = pip->ip_sum; + iresult = ProtoAliasOut(la, &src, + pip->ip_dst, pip->ip_p, &sum, create); + } } break; - default: - iresult = ProtoAliasOut(la, &pip->ip_src, - pip->ip_dst, pip->ip_p, &pip->ip_sum, create); + default: { + struct in_addr src = pip->ip_src; + u_short sum = pip->ip_sum; + iresult = ProtoAliasOut(la, &src, + pip->ip_dst, pip->ip_p, &sum, create); + } break; } } else { - iresult = FragmentOut(la, &pip->ip_src, &pip->ip_sum); + struct in_addr src = pip->ip_src; + u_short sum = pip->ip_sum; + iresult = FragmentOut(la, &src, &sum); } SetDefaultAliasAddress(la, addr_save);