From: Bram Moolenaar Date: Fri, 27 May 2016 17:59:48 +0000 (+0200) Subject: patch 7.4.1849 X-Git-Tag: v7.4.1849 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5850a764eae74a4dae7238e4e76b4c24f062699b;p=thirdparty%2Fvim.git patch 7.4.1849 Problem: Still trying to read from channel that is going to be closed. (Ramel Eshed) Solution: Check if ch_to_be_closed is set. --- diff --git a/src/channel.c b/src/channel.c index a5a84dc9c4..84dfcf7c0b 100644 --- a/src/channel.c +++ b/src/channel.c @@ -2893,6 +2893,10 @@ channel_read(channel_T *channel, int part, char *func) sock_T fd; int use_socket = FALSE; + /* If we detected a read error don't try reading again. */ + if (channel->ch_to_be_closed) + return; + fd = channel->ch_part[part].ch_fd; if (fd == INVALID_FD) { @@ -3193,6 +3197,10 @@ channel_handle_events(void) for (channel = first_channel; channel != NULL; channel = channel->ch_next) { + /* If we detected a read error don't try reading again. */ + if (channel->ch_to_be_closed) + continue; + /* check the socket and pipes */ for (part = PART_SOCK; part <= PART_ERR; ++part) { diff --git a/src/version.c b/src/version.c index 4922a0e226..2a259a528e 100644 --- a/src/version.c +++ b/src/version.c @@ -753,6 +753,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1849, /**/ 1848, /**/