From: Francois-Xavier Le Bail Date: Tue, 15 Oct 2024 19:08:57 +0000 (+0200) Subject: Update the ND_TCHECK_LEN macro definitions X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/6fa624334bfa077934deb08b65ffbd22105429e1 Update the ND_TCHECK_LEN macro definitions Avoid warnings such as in the following case: if (...) ND_TCHECK_LEN(...); else With gcc: source.c:X:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else] X | if (...) | ^ With clang: source.c:Y:2: warning: add explicit braces to avoid dangling else [-Wdangling-else] else ^ --- diff --git a/netdissect.h b/netdissect.h index 62383e65..2bd4cfd7 100644 --- a/netdissect.h +++ b/netdissect.h @@ -386,9 +386,15 @@ NORETURN void nd_trunc_longjmp(netdissect_options *ndo); /* Bail out if "l" bytes from "p" were not captured */ #ifdef ND_LONGJMP_FROM_TCHECK -#define ND_TCHECK_LEN(p, l) if (!ND_TTEST_LEN(p, l)) nd_trunc_longjmp(ndo) +#define ND_TCHECK_LEN(p, l) \ +do { \ +if (!ND_TTEST_LEN(p, l)) nd_trunc_longjmp(ndo); \ +} while (0) #else -#define ND_TCHECK_LEN(p, l) if (!ND_TTEST_LEN(p, l)) goto trunc +#define ND_TCHECK_LEN(p, l) \ +do { \ +if (!ND_TTEST_LEN(p, l)) goto trunc; \ +} while (0) #endif /* Bail out if "*(p)" was not captured */