summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-04-03 12:51:01 +0200
committerBram Moolenaar <Bram@vim.org>2018-04-03 12:51:01 +0200
commit9af9778209cd0cbb284f6ff7e88f707418089975 (patch)
tree918565320329b05e75862ffa7a31ef5cc9abc48c
parent8b31a6ff7a0a8184ddc9997a0cc4aa5f2350b279 (diff)
patch 8.0.1657: crash when reading a channelv8.0.1657
Problem: Crash when reading a channel. Solution: Clear the write flag before writing. (idea by Shinya Ohyanagi, closes #2769).
-rw-r--r--src/channel.c3
-rw-r--r--src/version.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/channel.c b/src/channel.c
index 3b71472fdc..38e639224c 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -4150,8 +4150,9 @@ channel_select_check(int ret_in, void *rfds_in, void *wfds_in)
if (ret > 0 && in_part->ch_fd != INVALID_FD
&& FD_ISSET(in_part->ch_fd, wfds))
{
- channel_write_input(channel);
+ /* Clear the flag first, ch_fd may change in channel_write_input(). */
FD_CLR(in_part->ch_fd, wfds);
+ channel_write_input(channel);
--ret;
}
}
diff --git a/src/version.c b/src/version.c
index 1c2d802d0b..1178d9b2a2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -763,6 +763,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1657,
+/**/
1656,
/**/
1655,