1
0
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:
Ilia Alshanetsky
2004-10-11 18:33:00 +00:00
parent 3657fef77c
commit 02a2e47986
3 changed files with 7 additions and 4 deletions

2
NEWS
View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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);