aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--executor/common.h2
-rw-r--r--executor/test.h36
-rw-r--r--pkg/csource/generated.go2
3 files changed, 20 insertions, 20 deletions
diff --git a/executor/common.h b/executor/common.h
index cb409e763..757f439a5 100644
--- a/executor/common.h
+++ b/executor/common.h
@@ -372,7 +372,7 @@ static void csum_inet_update(struct csum_inet* csum, const uint8* data, size_t l
csum->acc += *(uint16*)&data[i];
if (length & 1)
- csum->acc += (uint16)data[length - 1];
+ csum->acc += le16toh((uint16)data[length - 1]);
while (csum->acc > 0xffff)
csum->acc = (csum->acc & 0xffff) + (csum->acc >> 16);
diff --git a/executor/test.h b/executor/test.h
index 52506a51d..1f940eb71 100644
--- a/executor/test.h
+++ b/executor/test.h
@@ -41,108 +41,108 @@ static int test_csum_inet()
{// 0
"",
0,
- 0xffff},
+ le16toh(0xffff)},
{
// 1
"\x00",
1,
- 0xffff,
+ le16toh(0xffff),
},
{
// 2
"\x00\x00",
2,
- 0xffff,
+ le16toh(0xffff),
},
{
// 3
"\x00\x00\xff\xff",
4,
- 0x0000,
+ le16toh(0x0000),
},
{
// 4
"\xfc",
1,
- 0xff03,
+ le16toh(0xff03),
},
{
// 5
"\xfc\x12",
2,
- 0xed03,
+ le16toh(0xed03),
},
{
// 6
"\xfc\x12\x3e",
3,
- 0xecc5,
+ le16toh(0xecc5),
},
{
// 7
"\xfc\x12\x3e\x00\xc5\xec",
6,
- 0x0000,
+ le16toh(0x0000),
},
{
// 8
"\x42\x00\x00\x43\x44\x00\x00\x00\x45\x00\x00\x00\xba\xaa\xbb\xcc\xdd",
17,
- 0x43e1,
+ le16toh(0x43e1),
},
{
// 9
"\x42\x00\x00\x43\x44\x00\x00\x00\x45\x00\x00\x00\xba\xaa\xbb\xcc\xdd\x00",
18,
- 0x43e1,
+ le16toh(0x43e1),
},
{
// 10
"\x00\x00\x42\x00\x00\x43\x44\x00\x00\x00\x45\x00\x00\x00\xba\xaa\xbb\xcc\xdd",
19,
- 0x43e1,
+ le16toh(0x43e1),
},
{
// 11
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\xab\xcd",
15,
- 0x5032,
+ le16toh(0x5032),
},
{
// 12
"\x00\x00\x12\x34\x56\x78",
6,
- 0x5397,
+ le16toh(0x5397),
},
{
// 13
"\x00\x00\x12\x34\x00\x00\x56\x78\x00\x06\x00\x04\xab\xcd",
14,
- 0x7beb,
+ le16toh(0x7beb),
},
{
// 14
"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\xff\xee\xdd\xcc\xbb\xaa\x99\x88\x77\x66\x55\x44\x33\x22\x11\x00\x00\x00\x00\x04\x00\x00\x00\x06\x00\x00\xab\xcd",
44,
- 0x2854,
+ le16toh(0x2854),
},
{
// 15
"\x00\x00\x12\x34\x00\x00\x56\x78\x00\x11\x00\x04\xab\xcd",
14,
- 0x70eb,
+ le16toh(0x70eb),
},
{
// 16
"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\xff\xee\xdd\xcc\xbb\xaa\x99\x88\x77\x66\x55\x44\x33\x22\x11\x00\x00\x00\x00\x04\x00\x00\x00\x11\x00\x00\xab\xcd",
44,
- 0x1d54,
+ le16toh(0x1d54),
},
{
// 17
"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\xff\xee\xdd\xcc\xbb\xaa\x99\x88\x77\x66\x55\x44\x33\x22\x11\x00\x00\x00\x00\x04\x00\x00\x00\x3a\x00\x00\xab\xcd",
44,
- 0xf453,
+ le16toh(0xf453),
}};
for (unsigned i = 0; i < ARRAY_SIZE(tests); i++) {
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go
index 33362b51b..6c1f343be 100644
--- a/pkg/csource/generated.go
+++ b/pkg/csource/generated.go
@@ -354,7 +354,7 @@ static void csum_inet_update(struct csum_inet* csum, const uint8* data, size_t l
csum->acc += *(uint16*)&data[i];
if (length & 1)
- csum->acc += (uint16)data[length - 1];
+ csum->acc += le16toh((uint16)data[length - 1]);
while (csum->acc > 0xffff)
csum->acc = (csum->acc & 0xffff) + (csum->acc >> 16);