diff options
Diffstat (limited to '3666.patch')
| -rw-r--r-- | 3666.patch | 29 | 
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 */  | 
