Fix #55857: ftp_size on large files

`atol()` returns a `long` which is not the same as `zend_long` on
LLP64; we use `ZEND_ATOL()` instead.

There is no need for a new test case, since filesize_large.phpt already
tests for that behavior; unfortunately, the FTP test suite relies on
`pcntl_fork()` and therefore cannot be run on Windows.
This commit is contained in:
Christoph M. Becker 2020-06-23 15:17:31 +02:00
parent 91982bad63
commit e94126aac7
2 changed files with 7 additions and 1 deletions

3
NEWS
View File

@ -2,6 +2,9 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 7.3.21
- FTP:
. Fixed bug #55857 (ftp_size on large files). (cmb)
?? ??? ????, PHP 7.3.20
- Core:

View File

@ -1133,6 +1133,8 @@ bail:
zend_long
ftp_size(ftpbuf_t *ftp, const char *path, const size_t path_len)
{
zend_long res;
if (ftp == NULL) {
return -1;
}
@ -1145,7 +1147,8 @@ ftp_size(ftpbuf_t *ftp, const char *path, const size_t path_len)
if (!ftp_getresp(ftp) || ftp->resp != 213) {
return -1;
}
return atol(ftp->inbuf);
ZEND_ATOL(res, ftp->inbuf);
return res;
}
/* }}} */