The expression (192 << 24) has an undefined behavior since: - the integer constant 192 has type int, and - 192 x 2^24 is not representable as an int.
Suffixing 192 with U defines a behavior since: - the integer constant 192U has type unsigned int, and - the value of (192U << 24) is defined as (192 x 2^24) % (UINT_MAX + 1) This minor bug was found using TrustInSoft Analyzer. Signed-off-by: Julien Cretin <julien.cretin at trust-in-soft.com> --- app/test-pmd/txonly.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index 1cf2574..5bbd34f 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -76,8 +76,8 @@ #define UDP_SRC_PORT 1024 #define UDP_DST_PORT 1024 -#define IP_SRC_ADDR ((192 << 24) | (168 << 16) | (0 << 8) | 1) -#define IP_DST_ADDR ((192 << 24) | (168 << 16) | (0 << 8) | 2) +#define IP_SRC_ADDR ((192U << 24) | (168 << 16) | (0 << 8) | 1) +#define IP_DST_ADDR ((192U << 24) | (168 << 16) | (0 << 8) | 2) #define IP_DEFTTL 64 /* from RFC 1340. */ #define IP_VERSION 0x40 -- 1.9.1