summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/blob.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/blob.c b/src/blob.c
index 4ddc156..3abd0c5 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -192,10 +192,14 @@ void blob_percent_decode(blob_t *blob)
int blob_pull_inet_addr(blob_t *b, struct in_addr *saddr)
{
unsigned long ip = 0;
+ unsigned int octet;
int i;
for (i = 0; i < 3; i++) {
- ip += blob_pull_uint(b, 10);
+ octet = blob_pull_uint(b, 10);
+ if (octet > 255)
+ return 0;
+ ip += octet;
ip <<= 8;
if (!blob_pull_matching(b, BLOB_STR(".")))
return 0;