diff options
Diffstat (limited to 'ext/curl/interface.c')
-rw-r--r-- | ext/curl/interface.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c index c7112a091a..062f9969ae 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -3478,6 +3478,10 @@ PHP_FUNCTION(curl_escape) ZEND_FETCH_RESOURCE(ch, php_curl *, &zid, -1, le_curl_name, le_curl); if ((res = curl_easy_escape(ch->cp, str, str_len))) { + if (strlen(res) > INT_MAX) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Escaped string is too long, maximum is %d", INT_MAX); + RETURN_FALSE; + } RETVAL_STRING(res, 1); curl_free(res); } else { |