]> granicus.if.org Git - vim/commitdiff
patch 8.2.0435: channel contents might be freed twice v8.2.0435
authorBram Moolenaar <Bram@vim.org>
Mon, 23 Mar 2020 21:01:17 +0000 (22:01 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 23 Mar 2020 21:01:17 +0000 (22:01 +0100)
Problem:    Channel contents might be freed twice.
Solution:   Call either channel_free_channel() or channel_free(), not both.
            (Nobuhiro Takasaki, closes #5835)

src/channel.c
src/version.c

index d5240fc25efff2642fa6c87d71741c133fa6c470..6dde107bfac796985586af6b7296026709187733 100644 (file)
@@ -4457,9 +4457,11 @@ channel_parse_messages(void)
            if (channel->ch_killing)
            {
                channel_free_contents(channel);
+               channel_free_channel(channel);
                channel->ch_job->jv_channel = NULL;
            }
-           channel_free(channel);
+           else
+               channel_free(channel);
            // channel has been freed, start over
            channel = first_channel;
            continue;
index 6df87b45dce13e3b869bf7b67776e5a9634cbd01..738f31b3c5839e70d3ef7d51c24523170d0d7ee4 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    435,
 /**/
     434,
 /**/