diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2015-10-08 08:55:05 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2015-10-08 08:55:05 +0200 |
| commit | 6550d807ccf7149286b03083590d3f1c12141a32 (patch) | |
| tree | 61fbb948ef8dfd78cd72b61ab10c7572fc98f717 | |
| parent | 320c1c05cc059f6135563e57382e413d411104bd (diff) | |
| download | vis-6550d807ccf7149286b03083590d3f1c12141a32.tar.gz vis-6550d807ccf7149286b03083590d3f1c12141a32.tar.xz | |
ui: fix ressource leak (CID 114606)
| -rw-r--r-- | ui-curses.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ui-curses.c b/ui-curses.c index b2fd099..999da1b 100644 --- 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) { |
