diff options
Diffstat (limited to '3rdParty/LibIDN/src')
-rwxr-xr-x[-rw-r--r--] | 3rdParty/LibIDN/src/stringprep.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/3rdParty/LibIDN/src/stringprep.c b/3rdParty/LibIDN/src/stringprep.c index 8ff28e6..19bf0d9 100644..100755 --- a/3rdParty/LibIDN/src/stringprep.c +++ b/3rdParty/LibIDN/src/stringprep.c @@ -33,6 +33,7 @@ #include <stdlib.h> #include <string.h> +#include <assert.h> #include "stringprep.h" @@ -372,7 +373,7 @@ stringprep (char *in, int rc; char *utf8 = NULL; uint32_t *ucs4 = NULL; - size_t ucs4len, maxucs4len, adducs4len = 50; + size_t ucs4len = SIZE_MAX, maxucs4len = SIZE_MAX, adducs4len = 50; do { @@ -380,8 +381,10 @@ stringprep (char *in, free (ucs4); ucs4 = stringprep_utf8_to_ucs4 (in, -1, &ucs4len); - if (ucs4 == NULL) - return STRINGPREP_ICONV_ERROR; + if (ucs4 == NULL) { + return STRINGPREP_ICONV_ERROR; + } + assert(ucs4len != SIZE_MAX); maxucs4len = ucs4len + adducs4len; newp = realloc (ucs4, maxucs4len * sizeof (uint32_t)); if (!newp) |