Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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)
  • Loading branch information
brammool committed Jun 28, 2018
1 parent dc9e955 commit ca4b613
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/ex_cmds2.c
Expand Up @@ -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)
Expand Down
5 changes: 5 additions & 0 deletions src/gui.c
Expand Up @@ -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,
Expand Down
11 changes: 1 addition & 10 deletions src/gui_beval.c
Expand Up @@ -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,
Expand Down
9 changes: 1 addition & 8 deletions src/gui_w32.c
Expand Up @@ -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;
}
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -789,6 +789,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
121,
/**/
120,
/**/
Expand Down

0 comments on commit ca4b613

Please sign in to comment.