summaryrefslogtreecommitdiffstats
path: root/3666.patch
diff options
context:
space:
mode:
Diffstat (limited to '3666.patch')
-rw-r--r--3666.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/3666.patch b/3666.patch
new file mode 100644
index 0000000..cd88697
--- /dev/null
+++ b/3666.patch
@@ -0,0 +1,29 @@
+From 7ded74876ff287a4d6d8a12d933e003b61f6488a Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Thu, 15 Nov 2018 08:58:08 +0100
+Subject: [PATCH] Fix #77151 ftp_close(): SSL_read on shutdown
+
+Regression introduced in fix for #76972
+---
+ ext/ftp/ftp.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/ext/ftp/ftp.c b/ext/ftp/ftp.c
+index 88553b969c29..a7d5ebbea13c 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 */