[U-Boot] [RFC PATCH v2 3/5] lib/net_utils.c: make string_to_ip	stricter
    Chris Packham 
    judge.packham at gmail.com
       
    Fri Jan 18 02:35:30 CET 2013
    
    
  
From: Chris Packham <chris.packham at alliedtelesis.co.nz>
Previously values greater than 255 were implicitly truncated. Add some
stricter checking to reject addresses with components >255.
With the input "1234192.168.1.1" the old behaviour would truncate the
address to 192.168.1.1. New behaviour rejects the string outright and
returns 0, which for the purposes of IP addresses can be considered an
error.
Signed-off-by: Chris Packham <chris.packham at alliedtelesis.co.nz>
---
Changes in v2: None
 lib/net_utils.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/net_utils.c b/lib/net_utils.c
index b425a68..2b20ccb 100644
--- a/lib/net_utils.c
+++ b/lib/net_utils.c
@@ -39,8 +39,9 @@ IPaddr_t string_to_ip(const char *s)
 
 	for (addr=0, i=0; i<4; ++i) {
 		ulong val = s ? simple_strtoul(s, &e, 10) : 0;
+		if (val > 255)
+			return 0;
 		addr <<= 8;
-		addr |= (val & 0xFF);
 		if (s) {
 			s = (*e) ? e+1 : e;
 		}
-- 
1.7.12.rc2.16.g034161a
    
    
More information about the U-Boot
mailing list