Skip to content

Commit ca4b613

Browse files
committed
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)
1 parent dc9e955 commit ca4b613

File tree

5 files changed

+10
-19
lines changed

5 files changed

+10
-19
lines changed

src/ex_cmds2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,7 @@ check_due_timer(void)
14191419
bevalexpr_due_set = FALSE;
14201420
if (balloonEval == NULL)
14211421
{
1422-
balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
1422+
balloonEval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
14231423
balloonEvalForTerm = TRUE;
14241424
}
14251425
if (balloonEval != NULL)

src/gui.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,12 @@ gui_init(void)
745745
/* Always create the Balloon Evaluation area, but disable it when
746746
* 'ballooneval' is off. */
747747
if (balloonEval != NULL)
748+
{
749+
# ifdef FEAT_VARTABS
750+
vim_free(balloonEval->vts);
751+
# endif
748752
vim_free(balloonEval);
753+
}
749754
balloonEvalForTerm = FALSE;
750755
# ifdef FEAT_GUI_GTK
751756
balloonEval = gui_mch_create_beval_area(gui.drawarea, NULL,

src/gui_beval.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -111,28 +111,19 @@ gui_mch_create_beval_area(
111111
return NULL;
112112
}
113113

114-
beval = (BalloonEval *)alloc(sizeof(BalloonEval));
114+
beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
115115
if (beval != NULL)
116116
{
117117
#ifdef FEAT_GUI_GTK
118118
beval->target = GTK_WIDGET(target);
119-
beval->balloonShell = NULL;
120-
beval->timerID = 0;
121119
#else
122120
beval->target = (Widget)target;
123-
beval->balloonShell = NULL;
124-
beval->timerID = (XtIntervalId)NULL;
125121
beval->appContext = XtWidgetToApplicationContext((Widget)target);
126122
#endif
127123
beval->showState = ShS_NEUTRAL;
128-
beval->x = 0;
129-
beval->y = 0;
130124
beval->msg = mesg;
131125
beval->msgCB = mesgCB;
132126
beval->clientData = clientData;
133-
#ifdef FEAT_VARTABS
134-
beval->vts = NULL;
135-
#endif
136127

137128
/*
138129
* Set up event handler which will keep its eyes on the pointer,

src/gui_w32.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8922,28 +8922,21 @@ gui_mch_create_beval_area(
89228922
return NULL;
89238923
}
89248924

8925-
beval = (BalloonEval *)alloc(sizeof(BalloonEval));
8925+
beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
89268926
if (beval != NULL)
89278927
{
89288928
beval->target = s_textArea;
8929-
beval->balloon = NULL;
89308929

89318930
beval->showState = ShS_NEUTRAL;
8932-
beval->x = 0;
8933-
beval->y = 0;
89348931
beval->msg = mesg;
89358932
beval->msgCB = mesgCB;
89368933
beval->clientData = clientData;
8937-
#ifdef FEAT_VARTABS
8938-
beval->vts = NULL;
8939-
#endif
89408934

89418935
InitCommonControls();
89428936
cur_beval = beval;
89438937

89448938
if (p_beval)
89458939
gui_mch_enable_beval_area(beval);
8946-
89478940
}
89488941
return beval;
89498942
}

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,8 @@ static char *(features[]) =
789789

790790
static int included_patches[] =
791791
{ /* Add new patch number below this line */
792+
/**/
793+
121,
792794
/**/
793795
120,
794796
/**/

0 commit comments

Comments
 (0)