0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 7.4.1908

Problem:    Netbeans uses uninitialzed pointer and freed memory.
Solution:   Set "buffer" at the right place (hint by Ken Takata)
This commit is contained in:
Bram Moolenaar
2016-06-08 20:17:23 +02:00
parent 1d5f1d07ae
commit 5ce4a0b96a
2 changed files with 28 additions and 23 deletions

View File

@@ -393,7 +393,7 @@ netbeans_parse_messages(void)
if (node == NULL)
break; /* nothing to read */
/* Locate the first line in the first buffer. */
/* Locate the end of the first line in the first buffer. */
p = channel_first_nl(node);
if (p == NULL)
{
@@ -402,9 +402,9 @@ netbeans_parse_messages(void)
* prepend the text to that buffer and delete this one. */
if (channel_collapse(nb_channel, PART_SOCK, TRUE) == FAIL)
return;
continue;
}
else
{
/* There is a complete command at the start of the buffer.
* Terminate it with a NUL. When no more text is following unlink
* the buffer. Do this before executing, because new buffers can
@@ -413,23 +413,26 @@ netbeans_parse_messages(void)
if (*p == NUL)
{
own_node = TRUE;
channel_get(nb_channel, PART_SOCK);
buffer = channel_get(nb_channel, PART_SOCK);
/* "node" is now invalid! */
}
else
{
own_node = FALSE;
buffer = node->rq_buffer;
}
/* now, parse and execute the commands */
nb_parse_cmd(node->rq_buffer);
nb_parse_cmd(buffer);
if (own_node)
/* buffer finished, dispose of it */
vim_free(node->rq_buffer);
vim_free(buffer);
else
/* more follows, move it to the start */
channel_consume(nb_channel, PART_SOCK, (int)(p - buffer));
}
}
}
/*
* Handle one NUL terminated command.

View File

@@ -753,6 +753,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1908,
/**/
1907,
/**/