From c7ca8102c002287f492ca71f2193ee9b269f5bf5 Mon Sep 17 00:00:00 2001 From: ailin-nemui Date: Sat, 17 Mar 2018 13:36:38 +0100 Subject: fix a crash when trying to append to a NULL line reported by @vague666 --- src/fe-text/gui-printtext.c | 7 +++++++ src/fe-text/textbuffer-view.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/fe-text/gui-printtext.c b/src/fe-text/gui-printtext.c index 13d8c233..83a36f14 100644 --- a/src/fe-text/gui-printtext.c +++ b/src/fe-text/gui-printtext.c @@ -120,12 +120,19 @@ void gui_printtext_internal(int xpos, int ypos, const char *str) next_xpos = next_ypos = -1; } +static void view_add_eol(TEXT_BUFFER_VIEW_REC *view, LINE_REC **line); + void gui_printtext_after_time(TEXT_DEST_REC *dest, LINE_REC *prev, const char *str, time_t time) { GUI_WINDOW_REC *gui; gui = WINDOW_GUI(dest->window); + if (prev == NULL && !gui->view->buffer->last_eol) { + /* we have an unfinished line in the buffer still */ + view_add_eol(gui->view, &gui->insert_after); + } + gui->use_insert_after = TRUE; gui->insert_after = prev; gui->insert_after_time = time; diff --git a/src/fe-text/textbuffer-view.c b/src/fe-text/textbuffer-view.c index 99625ecc..3ccd95f5 100644 --- a/src/fe-text/textbuffer-view.c +++ b/src/fe-text/textbuffer-view.c @@ -913,11 +913,14 @@ void textbuffer_view_resize(TEXT_BUFFER_VIEW_REC *view, int width, int height) } else if (view->startline == view->bottom_startline && view->subline > view->bottom_subline) { view->subline = view->bottom_subline; - } else { + } else if (view->startline != NULL) { /* make sure the subline is still in allowed range */ linecount = view_get_linecount(view, view->startline); if (view->subline > linecount) view->subline = linecount; + } else { + /* we don't have a startline. still under construction? */ + view->subline = 0; } textbuffer_view_init_ypos(view); -- cgit v1.2.3