aboutgitcodebugslistschat
path: root/checksum.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2022-01-30 02:59:12 +0100
committerStefano Brivio <sbrivio@redhat.com>2022-01-30 02:59:12 +0100
commit292c1855531df7baab095ef608cda7240984340b (patch)
treedd5bc98e5b9beaf7721c87542fe37485dd712f37 /checksum.c
parent20d271b22604fc11a0b75fee52b89a6654c67db6 (diff)
downloadpasst-292c1855531df7baab095ef608cda7240984340b.tar
passt-292c1855531df7baab095ef608cda7240984340b.tar.gz
passt-292c1855531df7baab095ef608cda7240984340b.tar.bz2
passt-292c1855531df7baab095ef608cda7240984340b.tar.lz
passt-292c1855531df7baab095ef608cda7240984340b.tar.xz
passt-292c1855531df7baab095ef608cda7240984340b.tar.zst
passt-292c1855531df7baab095ef608cda7240984340b.zip
passt: Address new clang-tidy warnings from LLVM 13.0.1
clang-tidy from LLVM 13.0.1 reports some new warnings from these checkers: - altera-unroll-loops, altera-id-dependent-backward-branch: ignore for the moment being, add a TODO item - bugprone-easily-swappable-parameters: ignore, nothing to do about those - readability-function-cognitive-complexity: ignore for the moment being, add a TODO item - altera-struct-pack-align: ignore, alignment is forced in protocol headers - concurrency-mt-unsafe: ignore for the moment being, add a TODO item Fix bugprone-implicit-widening-of-multiplication-result warnings, though, that's doable and they seem to make sense. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'checksum.c')
-rw-r--r--checksum.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/checksum.c b/checksum.c
index c9905d1..acb1e3e 100644
--- a/checksum.c
+++ b/checksum.c
@@ -108,10 +108,13 @@ uint16_t csum_unaligned(const void *buf, size_t len, uint32_t init)
*/
void csum_tcp4(struct iphdr *iph)
{
- struct tcphdr *th = (struct tcphdr *)((char *)iph + iph->ihl * 4);
- uint16_t tlen = ntohs(iph->tot_len) - iph->ihl * 4, *p = (uint16_t *)th;
+ uint16_t tlen = ntohs(iph->tot_len) - iph->ihl * 4, *p;
+ struct tcphdr *th;
uint32_t sum = 0;
+ th = (struct tcphdr *)((char *)iph + (intptr_t)(iph->ihl * 4));
+ p = (uint16_t *)th;
+
sum += (iph->saddr >> 16) & 0xffff;
sum += iph->saddr & 0xffff;
sum += (iph->daddr >> 16) & 0xffff;