aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/plugins/nat/in2out.c3
-rwxr-xr-xsrc/plugins/nat/out2in.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/nat/in2out.c b/src/plugins/nat/in2out.c
index 8748013947c..8b565b1b6d3 100755
--- a/src/plugins/nat/in2out.c
+++ b/src/plugins/nat/in2out.c
@@ -794,6 +794,9 @@ static inline u32 icmp_in2out (snat_main_t *sm,
src_address /* changed member */);
ip0->checksum = ip_csum_fold (sum0);
+ if (icmp0->checksum == 0)
+ icmp0->checksum = 0xffff;
+
if (!icmp_is_error_message (icmp0))
{
new_id0 = sm0.port;
diff --git a/src/plugins/nat/out2in.c b/src/plugins/nat/out2in.c
index 7f811d97b59..ebd0dc4ba9a 100755
--- a/src/plugins/nat/out2in.c
+++ b/src/plugins/nat/out2in.c
@@ -644,6 +644,9 @@ static inline u32 icmp_out2in (snat_main_t *sm,
dst_address /* changed member */);
ip0->checksum = ip_csum_fold (sum0);
+ if (icmp0->checksum == 0)
+ icmp0->checksum = 0xffff;
+
if (!icmp_is_error_message (icmp0))
{
new_id0 = sm0.port;