From ad87e8c8a5285d9933257f853707e23e4dbee7e4 Mon Sep 17 00:00:00 2001 From: nick black Date: Wed, 1 Sep 2021 20:28:20 -0400 Subject: [PATCH] notcurses_core_init: call notcurses_stop_minimal() on error path --- src/lib/notcurses.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index ff0b6c493a..ead9d57f73 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -106,7 +106,9 @@ notcurses_stop_minimal(void* vnc){ ret = -1; } } - ret |= tcsetattr(nc->tcache.ttyfd, TCSAFLUSH, nc->tcache.tpreserved); + if(nc->tcache.tpreserved){ + ret |= tcsetattr(nc->tcache.ttyfd, TCSAFLUSH, nc->tcache.tpreserved); + } } if((esc = get_escape(&nc->tcache, ESCAPE_RMKX)) && fbuf_emit(f, esc)){ ret = -1; @@ -1257,12 +1259,8 @@ notcurses* notcurses_core_init(const notcurses_options* opts, FILE* outfp){ err: logpanic("Alas, you will not be going to space today.\n"); + notcurses_stop_minimal(ret); fbuf_free(&ret->rstate.f); - if(ret->tcache.tpreserved){ - (void)tcsetattr(ret->tcache.ttyfd, TCSAFLUSH, ret->tcache.tpreserved); - free(ret->tcache.tpreserved); - } - drop_signals(ret); del_curterm(cur_term); pthread_mutex_destroy(&ret->stats.lock); pthread_mutex_destroy(&ret->pilelock);