Bug #80880 [Opn->Ver]: SSL_read on shutdown, ftp/proc_open
| From: | cmb@php.net | Date: | Wed, 24 Mar 2021 13:31:55 +0000 |
| Subject: | Bug #80880 [Opn->Ver]: SSL_read on shutdown, ftp/proc_open | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-232967@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80880&edit=1
ID: 80880
Updated by: cmb@php.net
Reported by: gajowy at agzeta dot pl
Summary: SSL_read on shutdown, ftp/proc_open
-Status: Open
+Status: Verified
Type: Bug
Package: FTP related
Operating System: Windows 10 64-bit
PHP Version: 8.0.3
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
I can confirm the spurious warning regardless of a proc_open()
with PHP-7.4 and IIS. It seems to me the SSL shutdown handling[1]
is missing a case for SSL_ERROR_SYSCALL. errno 2 and 22 appear to
correspond to WSAECONNABORTED.
[1] <https://github.com/php/php-src/blob/php-7.4.16/ext/ftp/ftp.c#L1920-L1943>
Previous Comments:
------------------------------------------------------------------------
[2021-03-18 02:19:58] gajowy at agzeta dot pl
Description:
------------
Description:
------------
SSL_read on shutdown: No such file or directory (2) or
(main): SSL_read on shutdown: Invalid argument (22)
warining messages are issued if ftp code is executed after proc_open.
Error is trigerred even if ftp-related code is run succesfully (ftp_open, ftp_login, ftp_put &
ftp_close).
Another strange thing is that the problem only occurs if proc_open has been run beforehand.
1. If ftp code is inside a function (test script 1):
warning message is issued when return to the parent function.
2. If ftp code is inside the main() function (test script 2):
warining message is issued when script execution terminates.
Test script:
---------------
Test script 1
-------------
dl('ftp');
proc_open('php.exe',[],$pipes,NULL,NULL,['bypass_shell'=>TRUE]);
Send();
print("Last script line is here.\n");
function Send()
{
// replace ftp_server, user, password with actual values
$ftp=ftp_ssl_connect(ftp_server,21,10);
ftp_login($ftp, user, password);
ftp_close($ftp);
}
Test script 2
-------------
dl('ftp');
proc_open('php.exe',[],$pipes,NULL,NULL,['bypass_shell'=>TRUE]);
// replace ftp_server, user, password with actual values
$ftp=ftp_ssl_connect(ftp_server,21,10);
ftp_login($ftp, user, password);
ftp_close($ftp);
print("Last script line is here.\n");
Expected result:
----------------
No warning message is issued.
Actual result:
--------------
Various message warnings issued, like:
SSL_read on shutdown: No such file or directory (2)
(main): SSL_read on shutdown: Invalid argument (22)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80880&edit=1