php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77957 some FTP function show inappropriate error message "Operation now in progress"
Submitted: 2019-05-01 15:28 UTC Modified: 2019-05-01 15:29 UTC
From: sadaakikawata at gmail dot com Assigned:
Status: Open Package: FTP related
PHP Version: 7.3.4 OS: Fedora
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: sadaakikawata at gmail dot com
New email:
PHP Version: OS:

 

 [2019-05-01 15:28 UTC] sadaakikawata at gmail dot com
Description:
------------
Some FTP function (ftp_nlist, ftp_put, ..etc) show error message "failed: Operation now in progress (115)"
when failed to establish FTP data connection.
This error message comes from EINPROGRESS,
and EINPROGRESS comes from connect because sockfd is non-blocking.
https://github.com/php/php-src/blob/PHP-7.3.4/main/network.c#L308
Therefore, this error message not show the root cause of connection failure.

I think result from SO_ERROR should be used for displaying error message.
https://github.com/php/php-src/blob/PHP-7.3.4/main/network.c#L352

Test script:
---------------
<?php
// Assume that there is a FTP server on localhost whose port for control connection(21) is reachable, but ports for data connection is unreachable.
// eg.
// sudo docker run -d -e FTP_USER_PASS=pass -e FTP_USER_NAME=test -e FTP_USER_HOME=/home/test --name ftpd_server -p 21:21 -e "PUBLICHOST=localhost" --rm stilliard/pure-ftpd:hardened
$c = ftp_connect('localhost', 21);
ftp_login($c, 'test', 'pass');
ftp_pasv($c, true);
ftp_nlist($c, './');

Expected result:
----------------
more appropriate error message is displayed.

Actual result:
--------------
Warning: ftp_nlist(): php_connect_nonb() failed: Operation now in progress (115) in /***/test.php on line 8

Patches

fix-inappropriate-ftp-data-connection-failure-error-message (last revision 2019-05-01 15:28 UTC by sadaakikawata at sencorp dot co dot jp)

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-05-01 15:29 UTC] sadaakikawata at gmail dot com
-: sadaakikawata at sencorp dot co dot jp +: sadaakikawata at gmail dot com
 [2019-05-01 15:29 UTC] sadaakikawata at gmail dot com
fixed my email address
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Fri Dec 13 07:01:24 2019 UTC