From 6ee9658774942f7448af700fc04df0335796a3db Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 27 Apr 2019 22:06:37 +0200 Subject: patch 8.1.1219: not checking for NULL return from alloc() Problem: Not checking for NULL return from alloc(). Solution: Add checks. (Martin Kunev, closes #4303, closes #4174) --- src/gui_gtk_x11.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/gui_gtk_x11.c') diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 5275026f88..f99d1fdcb2 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -1576,12 +1576,15 @@ selection_get_cb(GtkWidget *widget UNUSED, if (string != NULL) { tmpbuf = alloc(length + 2); - tmpbuf[0] = 0xff; - tmpbuf[1] = 0xfe; - mch_memmove(tmpbuf + 2, string, (size_t)length); - vim_free(string); - string = tmpbuf; - length += 2; + if (tmpbuf != NULL) + { + tmpbuf[0] = 0xff; + tmpbuf[1] = 0xfe; + mch_memmove(tmpbuf + 2, string, (size_t)length); + vim_free(string); + string = tmpbuf; + length += 2; + } #if !GTK_CHECK_VERSION(3,0,0) /* Looks redundant even for GTK2 because these values are @@ -1606,10 +1609,10 @@ selection_get_cb(GtkWidget *widget UNUSED, tmpbuf[0] = motion_type; STRCPY(tmpbuf + 1, p_enc); mch_memmove(tmpbuf + l + 2, string, (size_t)length); + length += l + 2; + vim_free(string); + string = tmpbuf; } - length += l + 2; - vim_free(string); - string = tmpbuf; type = vimenc_atom; } -- cgit v1.2.3