From: Ilia Alshanetsky Date: Mon, 18 Oct 2004 22:41:24 +0000 (+0000) Subject: Fixed bug #30475 (curl_getinfo() may crash in some situations). X-Git-Tag: PRE_NEW_VM_GEN_PATCH~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8c8fba0841bfb40182d5d17e1447a4da1f389231;p=php Fixed bug #30475 (curl_getinfo() may crash in some situations). --- diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 46021ef4b9..b11dd2b075 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1336,10 +1336,13 @@ PHP_FUNCTION(curl_getinfo) switch (option) { case CURLINFO_EFFECTIVE_URL: case CURLINFO_CONTENT_TYPE: { - char *s_code; + char *s_code = NULL; - curl_easy_getinfo(ch->cp, option, &s_code); - RETURN_STRING(s_code, 1); + if (curl_easy_getinfo(ch->cp, option, &s_code) == CURLE_OK && s_code) { + RETURN_STRING(s_code, 1); + } else { + RETURN_FALSE; + } break; } case CURLINFO_HTTP_CODE: @@ -1348,10 +1351,13 @@ PHP_FUNCTION(curl_getinfo) case CURLINFO_FILETIME: case CURLINFO_SSL_VERIFYRESULT: case CURLINFO_REDIRECT_COUNT: { - long code; + long code = 0; - curl_easy_getinfo(ch->cp, option, &code); - RETURN_LONG(code); + if (curl_easy_getinfo(ch->cp, option, &code) == CURLE_OK) { + RETURN_LONG(code); + } else { + RETURN_FALSE; + } break; } case CURLINFO_TOTAL_TIME: @@ -1366,10 +1372,13 @@ PHP_FUNCTION(curl_getinfo) case CURLINFO_CONTENT_LENGTH_UPLOAD: case CURLINFO_STARTTRANSFER_TIME: case CURLINFO_REDIRECT_TIME: { - double code; + double code = 0.0; - curl_easy_getinfo(ch->cp, option, &code); - RETURN_DOUBLE(code); + if (curl_easy_getinfo(ch->cp, option, &code) == CURLE_OK) { + RETURN_DOUBLE(code); + } else { + RETURN_FALSE; + } break; } }