summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorWolfram Sang <w.sang@pengutronix.de>2011-09-25 22:54:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2011-09-26 13:22:25 +0200
commita3ccaecb1c0c60f4d6cd662e1fe9956c7997da17 (patch)
treec37d0ef3da8af8c747695098e0d826d698389b1b /net
parent9c4dc73eaa7d6e6fc7127ba7c5ccdfa92443aeb2 (diff)
downloadbarebox-a3ccaecb1c0c60f4d6cd662e1fe9956c7997da17.tar.gz
barebox-a3ccaecb1c0c60f4d6cd662e1fe9956c7997da17.tar.xz
net: string_to_ip: add sanity check for > 255
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r--net/net.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/net.c b/net/net.c
index f1ab667b35..35781188c0 100644
--- a/net/net.c
+++ b/net/net.c
@@ -113,8 +113,10 @@ int string_to_ip(const char *s, IPaddr_t *ip)
return -EINVAL;
val = simple_strtoul(s, &e, 10);
- addr <<= 8;
- addr |= (val & 0xFF);
+ if (val > 255)
+ return -EINVAL;
+
+ addr = (addr << 8) | val;
if (*e != '.' && i != 3)
return -EINVAL;