mirror of
https://github.com/php/php-src.git
synced 2026-04-01 21:22:13 +02:00
MFH: Fixed bug #30362 (stream_get_line() not handling end string correctly)
This commit is contained in:
2
NEWS
2
NEWS
@@ -5,6 +5,8 @@ PHP NEWS
|
||||
(vnegrier at esds dot com, Wez).
|
||||
- Fixed potential problems with unserializing invalid serialize data. (Marcus)
|
||||
- Fixed bug #30375 (cal_info() does not work without a parameter). (Ilia)
|
||||
- Fixed bug #30362 (stream_get_line() not handling end string correctly).
|
||||
(Ilia)
|
||||
- Fixed bug #30356 (str_ireplace() does not work on all strings). (Ilia)
|
||||
- Fixed bug #30344 (Reflection::getModifierNames() returns too long strings).
|
||||
(Marcus)
|
||||
|
||||
@@ -1059,11 +1059,11 @@ PHP_FUNCTION(stream_filter_append)
|
||||
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto string stream_get_line(resource stream, int maxlen, string ending)
|
||||
/* {{{ proto string stream_get_line(resource stream, int maxlen [, string ending])
|
||||
Read up to maxlen bytes from a stream or until the ending string is found */
|
||||
PHP_FUNCTION(stream_get_line)
|
||||
{
|
||||
char *str;
|
||||
char *str = NULL;
|
||||
int str_len;
|
||||
long max_length;
|
||||
zval *zstream;
|
||||
@@ -1071,7 +1071,7 @@ PHP_FUNCTION(stream_get_line)
|
||||
size_t buf_size;
|
||||
php_stream *stream;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rls", &zstream, &max_length, &str, &str_len) == FAILURE) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|s", &zstream, &max_length, &str, &str_len) == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -835,7 +835,7 @@ PHPAPI char *php_stream_get_record(php_stream *stream, size_t maxlen, size_t *re
|
||||
|
||||
php_stream_fill_read_buffer(stream, maxlen TSRMLS_CC);
|
||||
|
||||
if (delim_len == 0) {
|
||||
if (delim_len == 0 || !delim) {
|
||||
toread = maxlen;
|
||||
} else {
|
||||
if (delim_len == 1) {
|
||||
@@ -859,6 +859,7 @@ PHPAPI char *php_stream_get_record(php_stream *stream, size_t maxlen, size_t *re
|
||||
*returned_len = php_stream_read(stream, buf, toread);
|
||||
|
||||
if (*returned_len >= 0) {
|
||||
buf[*returned_len] = '\0';
|
||||
return buf;
|
||||
} else {
|
||||
efree(buf);
|
||||
|
||||
Reference in New Issue
Block a user