From d9afc2f662587a042db38c8f0df98a27bfc89d29 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 15 Nov 2018 08:58:08 +0100 Subject: Fix #77151 ftp_close(): SSL_read on shutdown Regression introduced in fix for #76972 only display the error message when sslerror or if errno is set (for SSL_ERROR_SYSCALL case) --- ext/ftp/ftp.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ext/ftp/ftp.c b/ext/ftp/ftp.c index 88553b969c..44e3bf2510 100644 --- a/ext/ftp/ftp.c +++ b/ext/ftp/ftp.c @@ -1770,10 +1770,10 @@ static void ftp_ssl_shutdown(ftpbuf_t *ftp, php_socket_t fd, SSL *ssl_handle) { done = 0; } - while (!done) { - if (data_available(ftp, fd)) { - ERR_clear_error(); - nread = SSL_read(ssl_handle, buf, sizeof(buf)); + while (!done && data_available(ftp, fd)) { + ERR_clear_error(); + nread = SSL_read(ssl_handle, buf, sizeof(buf)); + if (nread <= 0) { err = SSL_get_error(ssl_handle, nread); switch (err) { case SSL_ERROR_NONE: /* this is not an error */ @@ -1791,9 +1791,11 @@ static void ftp_ssl_shutdown(ftpbuf_t *ftp, php_socket_t fd, SSL *ssl_handle) { break; default: if ((sslerror = ERR_get_error())) { - ERR_error_string_n(sslerror, buf, sizeof(buf)); + ERR_error_string_n(sslerror, buf, sizeof(buf)); + php_error_docref(NULL, E_WARNING, "SSL_read on shutdown: %s", buf); + } else if (errno) { + php_error_docref(NULL, E_WARNING, "SSL_read on shutdown: %s (%d)", strerror(errno), errno); } - php_error_docref(NULL, E_WARNING, "SSL_read on shutdown: %s (%d)", (sslerror ? buf : strerror(errno)), errno); done = 1; break; } -- cgit v1.2.1 From 1adbf70e26c7d515ffb7b08248707214218089e8 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 20 Nov 2018 11:19:29 +0100 Subject: NEWS --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 900bd72fcd..52b3c1c329 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2018, PHP 7.1.25 +- ftp: + . Fixed bug #77151 (ftp_close(): SSL_read on shutdown). (Remi) + - iconv: . Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR). (cmb) -- cgit v1.2.1 From e7acb29eb0626dfebde7675400283d4acfe1f51a Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 20 Nov 2018 11:20:05 +0100 Subject: NEWS --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 8a7d7ea670..e0b04fb691 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2018, PHP 7.2.13 +- ftp: + . Fixed bug #77151 (ftp_close(): SSL_read on shutdown). (Remi) + - CLI: . Fixed bug #77111 (php-win.exe corrupts unicode symbols from cli parameters). (Anatol) -- cgit v1.2.1