|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2004, PHP 5.0.3
- Fixed potential problems with unserializing invalid serialize data. (Marcus)
+- Fixed bug #30475 (curl_getinfo() may crash in some situations). (Ilia)
- Fixed bug #30442 (segfault when parsing ?getvariable[][ ). (Tony)
- Fixed bug #30387 (stream_socket_client async connect was broken).
(vnegrier at esds dot com, Wez).
PHPWRITE(data, length);
break;
case PHP_CURL_FILE:
+ fflush(t->fp);
return fwrite(data, size, nmemb, t->fp);
case PHP_CURL_RETURN:
smart_str_appendl(&t->buf, data, (int) length);
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:
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:
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;
}
}