From 6348137adc2e0d2914339e760dbde1814d44b109 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Wed, 23 Apr 2025 19:44:23 +0000 Subject: Add rpath; fix excessive ip4_scan tolerance Signed-off-by: Laurent Bercot --- src/libstddjb/ip4_scan.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/libstddjb/ip4_scan.c b/src/libstddjb/ip4_scan.c index 19c2cec..fe4a8b6 100644 --- a/src/libstddjb/ip4_scan.c +++ b/src/libstddjb/ip4_scan.c @@ -1,24 +1,22 @@ /* ISC license. */ -#include +#include + +#include #include size_t ip4_scan (char const *s, char *ip) { size_t len = 0 ; - unsigned int j = 0 ; - for (; j < 4 ; j++) + uint16_t u ; + for (unsigned int j = 0 ; j < 4 ; j++) { - unsigned int u ; - size_t i = uint_scan(s, &u) ; - if (!i) return 0 ; - ip[j] = (char)u ; - s += i ; + size_t i = uint16_scan(s + len, &u) ; + if (!i || u > 0xffu) return 0 ; + ip[j] = u ; len += i ; if (j == 3) break ; - if (*s != '.') return 0 ; - ++s ; - ++len ; + if (s[len++] != '.') return 0 ; } return len ; } -- cgit v1.3.1