]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Memory leak fixes reported by Balazs Domjan.
authorSimon Tatham <anakin@pobox.com>
Thu, 30 Aug 2012 18:48:08 +0000 (18:48 +0000)
committerSimon Tatham <anakin@pobox.com>
Thu, 30 Aug 2012 18:48:08 +0000 (18:48 +0000)
[originally from svn r9645]

terminal.c

index ed3563dc824b8a5b3d082e682251f2b454501d9d..cc4b0d8f91862df48be0141cf93ce4009bfd3530 100644 (file)
@@ -1619,10 +1619,14 @@ void term_free(Terminal *term)
     for (i = 0; i < term->bidi_cache_size; i++) {
        sfree(term->pre_bidi_cache[i].chars);
        sfree(term->post_bidi_cache[i].chars);
+        sfree(term->post_bidi_cache[i].forward);
+        sfree(term->post_bidi_cache[i].backward);
     }
     sfree(term->pre_bidi_cache);
     sfree(term->post_bidi_cache);
 
+    sfree(term->tabs);
+
     expire_timer_context(term);
 
     conf_free(term->conf);
@@ -1711,7 +1715,8 @@ void term_size(Terminal *term, int newrows, int newcols, int newsavelines)
     while (term->rows > newrows) {
        if (term->curs.y < term->rows - 1) {
            /* delete bottom row, unless it contains the cursor */
-           sfree(delpos234(term->screen, term->rows - 1));
+            line = delpos234(term->screen, term->rows - 1);
+            freeline(line);
        } else {
            /* push top row to scrollback */
            line = delpos234(term->screen, 0);