[ovs-dev] [PATCH] util: Fix bad constant in ovs_scan() implementation on 64-bit.

Ben Pfaff blp at nicira.com
Fri Nov 15 18:21:55 UTC 2013


scan_chars() compares an "unsigned int" against SIZE_MAX, which will
always be false on 64-bit architectures.  The correct constant is
UINT_MAX.

Reported-by: Jarno Rajahalme <jrajahalme at nicira.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>
---
 lib/util.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/util.c b/lib/util.c
index b633166..c252886 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -1497,7 +1497,7 @@ scan_set(const char *s, const struct scan_spec *spec, const char **pp,
 static const char *
 scan_chars(const char *s, const struct scan_spec *spec, va_list *args)
 {
-    unsigned int n = spec->width == SIZE_MAX ? 1 : spec->width;
+    unsigned int n = spec->width == UINT_MAX ? 1 : spec->width;
 
     if (strlen(s) < n) {
         return NULL;
-- 
1.7.10.4




More information about the dev mailing list