]> granicus.if.org Git - vim/commitdiff
patch 8.2.0788: memory leak in libvterm v8.2.0788
authorBram Moolenaar <Bram@vim.org>
Sun, 17 May 2020 21:34:42 +0000 (23:34 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 17 May 2020 21:34:42 +0000 (23:34 +0200)
Problem:    Memory leak in libvterm.
Solution:   free tmpbuffer.

src/libvterm/src/vterm.c
src/version.c

index 7b06c04bbc38355265973313016f650786d66f35..991286ee90aebb3f8d30edcc51adb60828c59a6c 100644 (file)
@@ -79,6 +79,13 @@ VTerm *vterm_new_with_allocator(int rows, int cols, VTermAllocatorFunctions *fun
 
   vt->tmpbuffer_len = 64;
   vt->tmpbuffer = vterm_allocator_malloc(vt, vt->tmpbuffer_len);
+  if (vt->tmpbuffer == NULL)
+  {
+    vterm_allocator_free(vt, vt->parser.strbuffer);
+    vterm_allocator_free(vt, vt);
+    vterm_allocator_free(vt, vt->outbuffer);
+    return NULL;
+  }
 
   return vt;
 }
@@ -93,6 +100,7 @@ void vterm_free(VTerm *vt)
 
   vterm_allocator_free(vt, vt->parser.strbuffer);
   vterm_allocator_free(vt, vt->outbuffer);
+  vterm_allocator_free(vt, vt->tmpbuffer);
 
   vterm_allocator_free(vt, vt);
 }
index abdb68a732bd9ce0627a6bed031136ea4a92a40d..4dcae55f026a57ba59fda7f90ae37a058643cbe9 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    788,
 /**/
     787,
 /**/