[Bug 247129] [PATCH] Fix some compiler warnings in netinet alias module
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Jun 10 22:52:58 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247129
--- Comment #2 from nikethmurali at protonmail.com ---
Comment on attachment 215410
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=215410
Patch for /sys/netinet/libalias/alias.c
Index: alias.c
===================================================================
--- alias.c (revision 361967)
+++ 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;
@@ -1343,9 +1346,10 @@
static int
LibAliasInLocked(struct libalias *la, char *ptr, int maxpacketsize)
{
- struct in_addr alias_addr;
+ struct in_addr alias_addr,ip_dst;
struct ip *pip;
int iresult;
+ u_short ip_sum ;
if (la->packetAliasMode & PKT_ALIAS_REVERSE) {
la->packetAliasMode &= ~PKT_ALIAS_REVERSE;
@@ -1398,14 +1402,24 @@
error = find_handler(IN, IP, la, pip, &ad);
if (error == 0)
iresult = PKT_ALIAS_OK;
- else
+ else {
+ ip_dst = pip->ip_dst;
+ ip_sum = pip->ip_sum;
iresult = ProtoAliasIn(la, pip->ip_src,
- &pip->ip_dst, pip->ip_p, &pip->ip_sum);
+ &ip_dst, pip->ip_p, &ip_sum);
+ pip->ip_dst = ip_dst;
+ pip->ip_sum = ip_sum;
+ }
}
break;
- default:
- iresult = ProtoAliasIn(la, pip->ip_src, &pip->ip_dst,
- pip->ip_p, &pip->ip_sum);
+ default: {
+ ip_dst = pip->ip_dst;
+ ip_sum = pip->ip_sum;
+ iresult = ProtoAliasIn(la, pip->ip_src, &ip_dst,
+ pip->ip_p, &ip_sum);
+ }
+ pip->ip_dst = ip_dst;
+ pip->ip_sum = ip_sum;
break;
}
@@ -1421,8 +1435,12 @@
}
}
} else {
- iresult = FragmentIn(la, pip->ip_src, &pip->ip_dst, pip->ip_id,
- &pip->ip_sum);
+ ip_dst = pip->ip_dst;
+ ip_sum = pip->ip_sum;
+ iresult = FragmentIn(la, pip->ip_src, &ip_dst, pip->ip_id,
+ &ip_sum);
+ pip->ip_dst = ip_dst;
+ pip->ip_sum = ip_sum;
}
getout:
@@ -1479,8 +1497,9 @@
)
{
int iresult;
- struct in_addr addr_save;
+ struct in_addr addr_save,ip_src;
struct ip *pip;
+ u_short ip_sum;
if (la->packetAliasMode & PKT_ALIAS_REVERSE) {
la->packetAliasMode &= ~PKT_ALIAS_REVERSE;
@@ -1555,18 +1574,33 @@
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 {
+ ip_src = pip->ip_src;
+ ip_sum = pip->ip_sum;
+ iresult = ProtoAliasOut(la, &ip_src,
+ pip->ip_dst, pip->ip_p, &ip_sum, create);
+ pip->ip_src = ip_src;
+ pip->ip_sum = ip_sum;
+ }
}
break;
- default:
- iresult = ProtoAliasOut(la, &pip->ip_src,
- pip->ip_dst, pip->ip_p, &pip->ip_sum, create);
+ default: {
+ ip_src = pip->ip_src;
+ ip_sum = pip->ip_sum;
+ iresult = ProtoAliasOut(la, &ip_src,
+ pip->ip_dst, pip->ip_p, &ip_sum, create);
+ pip->ip_src = ip_src;
+ pip->ip_sum = ip_sum;
+ }
break;
}
} else {
- iresult = FragmentOut(la, &pip->ip_src, &pip->ip_sum);
+ ip_src = pip->ip_src;
+ ip_sum = pip->ip_sum;
+ iresult = FragmentOut(la, &ip_src, &ip_sum);
+ pip->ip_src = ip_src;
+ pip->ip_sum = ip_sum;
+
}
SetDefaultAliasAddress(la, addr_save);
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list