From 8c8fba0841bfb40182d5d17e1447a4da1f389231 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Mon, 18 Oct 2004 22:41:24 +0000 Subject: [PATCH] Fixed bug #30475 (curl_getinfo() may crash in some situations). --- ext/curl/interface.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) 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; } } -- 2.50.1