diff --git a/src/basic/escape.c b/src/basic/escape.c index d95f35e798..e7f90a4594 100644 --- a/src/basic/escape.c +++ b/src/basic/escape.c @@ -451,6 +451,12 @@ char* octescape(const char *s, size_t len) { assert(s || len == 0); + if (len == SIZE_MAX) + len = strlen(s); + + if (len > (SIZE_MAX)-1/4) + return NULL; + t = buf = new(char, len * 4 + 1); if (!buf) return NULL;