From 88c9d10f90cd900c4682206e417fd565a716e8d3 Mon Sep 17 00:00:00 2001 From: lda Date: Fri, 8 Dec 2023 21:24:31 +0100 Subject: [PATCH] [MOD] Add basic length checking --- src/Parser.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Parser.c b/src/Parser.c index c232cba..d46da35 100644 --- a/src/Parser.c +++ b/src/Parser.c @@ -180,7 +180,7 @@ ParseIPv6(char **str, char **out) goto fail; } /* We do not have to check whenever the digit here is valid, - * because it has to be .*/ + * because it has to be. */ digit = 0; digits++; @@ -196,6 +196,7 @@ ParseIPv6(char **str, char **out) length += strlen(ipv4); Free(ipv4); c = Iterate(str); + filled = 1; goto end; } } @@ -207,7 +208,12 @@ end: } length = (size_t) (*str - start); + if (length < 4 || length > 47) + { + goto fail; + } *out = Malloc(length + 1); + memset(*out, '\0', length + 1); memcpy(*out, start, length); return 1;