summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-06-28 12:05:11 +0200
committerBram Moolenaar <Bram@vim.org>2018-06-28 12:05:11 +0200
commitca4b613c692b927c9345dc9e3d6be5de35266be2 (patch)
treefda5e9dfd74a771d6231b7dc5d35c9ade0b9b7bc
parentdc9e955fb07f410d5d3e981ce18d895dd2847c85 (diff)
downloadvim-ca4b613c692b927c9345dc9e3d6be5de35266be2.zip
patch 8.1.0121: crash when using ballooneval related to 'vartabstop'
Problem: Crash when using ballooneval related to 'vartabstop'. Solution: Initialize balloonEval->vts to NULL. (Markus Braun)
-rw-r--r--src/ex_cmds2.c2
-rw-r--r--src/gui.c5
-rw-r--r--src/gui_beval.c11
-rw-r--r--src/gui_w32.c9
-rw-r--r--src/version.c2
5 files changed, 10 insertions, 19 deletions
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 01bc357f4..5f58fedfb 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1419,7 +1419,7 @@ check_due_timer(void)
bevalexpr_due_set = FALSE;
if (balloonEval == NULL)
{
- balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
+ balloonEval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
balloonEvalForTerm = TRUE;
}
if (balloonEval != NULL)
diff --git a/src/gui.c b/src/gui.c
index 87ea5ce2b..f51b81f86 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -745,7 +745,12 @@ gui_init(void)
/* Always create the Balloon Evaluation area, but disable it when
* 'ballooneval' is off. */
if (balloonEval != NULL)
+ {
+# ifdef FEAT_VARTABS
+ vim_free(balloonEval->vts);
+# endif
vim_free(balloonEval);
+ }
balloonEvalForTerm = FALSE;
# ifdef FEAT_GUI_GTK
balloonEval = gui_mch_create_beval_area(gui.drawarea, NULL,
diff --git a/src/gui_beval.c b/src/gui_beval.c
index 7e4625080..49694cfdd 100644
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -111,28 +111,19 @@ gui_mch_create_beval_area(
return NULL;
}
- beval = (BalloonEval *)alloc(sizeof(BalloonEval));
+ beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
if (beval != NULL)
{
#ifdef FEAT_GUI_GTK
beval->target = GTK_WIDGET(target);
- beval->balloonShell = NULL;
- beval->timerID = 0;
#else
beval->target = (Widget)target;
- beval->balloonShell = NULL;
- beval->timerID = (XtIntervalId)NULL;
beval->appContext = XtWidgetToApplicationContext((Widget)target);
#endif
beval->showState = ShS_NEUTRAL;
- beval->x = 0;
- beval->y = 0;
beval->msg = mesg;
beval->msgCB = mesgCB;
beval->clientData = clientData;
-#ifdef FEAT_VARTABS
- beval->vts = NULL;
-#endif
/*
* Set up event handler which will keep its eyes on the pointer,
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 855381108..147d98b39 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -8922,28 +8922,21 @@ gui_mch_create_beval_area(
return NULL;
}
- beval = (BalloonEval *)alloc(sizeof(BalloonEval));
+ beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
if (beval != NULL)
{
beval->target = s_textArea;
- beval->balloon = NULL;
beval->showState = ShS_NEUTRAL;
- beval->x = 0;
- beval->y = 0;
beval->msg = mesg;
beval->msgCB = mesgCB;
beval->clientData = clientData;
-#ifdef FEAT_VARTABS
- beval->vts = NULL;
-#endif
InitCommonControls();
cur_beval = beval;
if (p_beval)
gui_mch_enable_beval_area(beval);
-
}
return beval;
}
diff --git a/src/version.c b/src/version.c
index aa8a1de06..5aacf2f11 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 121,
+/**/
120,
/**/
119,