Patch 7.4.1908
Problem: Netbeans uses uninitialzed pointer and freed memory.
Solution: Set "buffer" at the right place (hint by Ken Takata)
Files: src/netbeans.c
*** ../vim-7.4.1907/src/netbeans.c 2016-06-07 22:16:31.690333465 +0200
--- src/netbeans.c 2016-06-08 20:11:03.597248519 +0200
***************
*** 393,399 ****
if (node == NULL)
break; /* nothing to read */
! /* Locate the first line in the first buffer. */
p = channel_first_nl(node);
if (p == NULL)
{
--- 393,399 ----
if (node == NULL)
break; /* nothing to read */
! /* Locate the end of the first line in the first buffer. */
p = channel_first_nl(node);
if (p == NULL)
{
***************
*** 402,433 ****
* prepend the text to that buffer and delete this one. */
if (channel_collapse(nb_channel, PART_SOCK, TRUE) == FAIL)
return;
}
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
! * be added while busy handling the command. */
! *p++ = NUL;
! if (*p == NUL)
! {
! own_node = TRUE;
! channel_get(nb_channel, PART_SOCK);
! }
! else
! own_node = FALSE;
! /* now, parse and execute the commands */
! nb_parse_cmd(node->rq_buffer);
! if (own_node)
! /* buffer finished, dispose of it */
! vim_free(node->rq_buffer);
! else
! /* more follows, move it to the start */
! channel_consume(nb_channel, PART_SOCK, (int)(p - buffer));
! }
}
}
--- 402,436 ----
* prepend the text to that buffer and delete this one. */
if (channel_collapse(nb_channel, PART_SOCK, TRUE) == FAIL)
return;
+ continue;
+ }
+
+ /* 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
+ * be added while busy handling the command. */
+ *p++ = NUL;
+ if (*p == NUL)
+ {
+ own_node = TRUE;
+ 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(buffer);
! if (own_node)
! /* buffer finished, dispose of it */
! vim_free(buffer);
! else
! /* more follows, move it to the start */
! channel_consume(nb_channel, PART_SOCK, (int)(p - buffer));
}
}
*** ../vim-7.4.1907/src/version.c 2016-06-07 22:49:57.758305870 +0200
--- src/version.c 2016-06-08 20:01:07.209256723 +0200
***************
*** 755,756 ****
--- 755,758 ----
{ /* Add new patch number below this line */
+ /**/
+ 1908,
/**/
--
hundred-and-one symptoms of being an internet addict:
63. You start using smileys in your snail mail.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.