vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit 3e2b6c41b98871f8913b6379231878a073dca9be
parent 50f08b08021287874216a44ea69fe43344e4ed4b
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Thu,  8 Oct 2015 08:55:05 +0200

ui: fix ressource leak (CID 114606)

Diffstat:
Mui-curses.c | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ui-curses.c b/ui-curses.c @@ -580,10 +580,8 @@ Ui *ui_curses_new(Color *colors) { Ui *ui = (Ui*)uic; if (!uic) return NULL; - if (!(uic->termkey = termkey_new(STDIN_FILENO, TERMKEY_FLAG_UTF8))) { - ui_curses_free(ui); - return NULL; - } + if (!(uic->termkey = termkey_new(STDIN_FILENO, TERMKEY_FLAG_UTF8))) + goto err; setlocale(LC_CTYPE, ""); if (!getenv("ESCDELAY")) @@ -592,7 +590,7 @@ Ui *ui_curses_new(Color *colors) { if (!term) term = "xterm"; if (!newterm(term, stderr, stdin)) - return NULL; + goto err; start_color(); use_default_colors(); raw(); @@ -646,6 +644,9 @@ Ui *ui_curses_new(Color *colors) { ui_resize(ui); return ui; +err: + ui_curses_free(ui); + return NULL; } void ui_curses_free(Ui *ui) {