mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-8.2' into PHP-8.3
This commit is contained in:
commit
2636104a83
2 changed files with 6 additions and 4 deletions
1
NEWS
1
NEWS
|
@ -66,6 +66,7 @@ PHP NEWS
|
||||||
ext/session/mod_files.c). (nielsdos)
|
ext/session/mod_files.c). (nielsdos)
|
||||||
. Fixed bug GH-13891 (memleak and segfault when using ini_set with
|
. Fixed bug GH-13891 (memleak and segfault when using ini_set with
|
||||||
session.trans_sid_hosts). (nielsdos, kamil-tekiela)
|
session.trans_sid_hosts). (nielsdos, kamil-tekiela)
|
||||||
|
. Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)
|
||||||
|
|
||||||
- Streams:
|
- Streams:
|
||||||
. Fixed file_get_contents() on Windows fails with "errno=22 Invalid
|
. Fixed file_get_contents() on Windows fails with "errno=22 Invalid
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
# ifndef O_NOFOLLOW
|
# ifndef O_NOFOLLOW
|
||||||
# define O_NOFOLLOW 0
|
# define O_NOFOLLOW 0
|
||||||
# endif
|
# endif
|
||||||
|
#define SESS_FILE_BUF_SIZE(sz) ((unsigned int)(sz > INT_MAX ? INT_MAX : (unsigned int)sz))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -246,7 +247,7 @@ static zend_result ps_files_write(ps_files *data, zend_string *key, zend_string
|
||||||
lseek(data->fd, 0, SEEK_SET);
|
lseek(data->fd, 0, SEEK_SET);
|
||||||
#ifdef PHP_WIN32
|
#ifdef PHP_WIN32
|
||||||
{
|
{
|
||||||
unsigned int to_write = ZSTR_LEN(val) > UINT_MAX ? UINT_MAX : (unsigned int)ZSTR_LEN(val);
|
unsigned int to_write = SESS_FILE_BUF_SIZE(ZSTR_LEN(val));
|
||||||
char *buf = ZSTR_VAL(val);
|
char *buf = ZSTR_VAL(val);
|
||||||
int wrote;
|
int wrote;
|
||||||
|
|
||||||
|
@ -255,7 +256,7 @@ static zend_result ps_files_write(ps_files *data, zend_string *key, zend_string
|
||||||
|
|
||||||
n += wrote;
|
n += wrote;
|
||||||
buf = wrote > -1 ? buf + wrote : 0;
|
buf = wrote > -1 ? buf + wrote : 0;
|
||||||
to_write = wrote > -1 ? (ZSTR_LEN(val) - n > UINT_MAX ? UINT_MAX : (unsigned int)(ZSTR_LEN(val) - n)): 0;
|
to_write = wrote > -1 ? SESS_FILE_BUF_SIZE(ZSTR_LEN(val) - n) : 0;
|
||||||
|
|
||||||
} while(wrote > 0);
|
} while(wrote > 0);
|
||||||
}
|
}
|
||||||
|
@ -493,7 +494,7 @@ PS_READ_FUNC(files)
|
||||||
lseek(data->fd, 0, SEEK_SET);
|
lseek(data->fd, 0, SEEK_SET);
|
||||||
#ifdef PHP_WIN32
|
#ifdef PHP_WIN32
|
||||||
{
|
{
|
||||||
unsigned int to_read = ZSTR_LEN(*val) > UINT_MAX ? UINT_MAX : (unsigned int)ZSTR_LEN(*val);
|
unsigned int to_read = SESS_FILE_BUF_SIZE(ZSTR_LEN(*val));
|
||||||
char *buf = ZSTR_VAL(*val);
|
char *buf = ZSTR_VAL(*val);
|
||||||
int read_in;
|
int read_in;
|
||||||
|
|
||||||
|
@ -502,7 +503,7 @@ PS_READ_FUNC(files)
|
||||||
|
|
||||||
n += read_in;
|
n += read_in;
|
||||||
buf = read_in > -1 ? buf + read_in : 0;
|
buf = read_in > -1 ? buf + read_in : 0;
|
||||||
to_read = read_in > -1 ? (ZSTR_LEN(*val) - n > UINT_MAX ? UINT_MAX : (unsigned int)(ZSTR_LEN(*val) - n)): 0;
|
to_read = read_in > -1 ? SESS_FILE_BUF_SIZE(ZSTR_LEN(*val) - n) : 0;
|
||||||
|
|
||||||
} while(read_in > 0);
|
} while(read_in > 0);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue