forked from enlightenment/efl
gl_x11/evas_engine: Prevent dereference before NULL check
Summary: re->win pointer was not compared with NULL pointer before re->win was referenced. Reviewers: Hermet Reviewed By: Hermet CC: seoz, cedric Differential Revision: https://phab.enlightenment.org/D910
This commit is contained in:
parent
bc446e37c1
commit
abbfd23a22
|
@ -929,7 +929,7 @@ eng_setup(Evas *eo_e, void *in)
|
|||
else
|
||||
{
|
||||
re = e->engine.data.output;
|
||||
if (_re_wincheck(re))
|
||||
if (re->win && _re_wincheck(re))
|
||||
{
|
||||
if ((re->info->info.display != re->win->disp) ||
|
||||
(re->info->info.drawable != re->win->win) ||
|
||||
|
@ -938,16 +938,11 @@ eng_setup(Evas *eo_e, void *in)
|
|||
(re->info->info.colormap != re->win->colormap) ||
|
||||
(re->info->info.depth != re->win->depth) ||
|
||||
(re->info->info.destination_alpha != re->win->alpha))
|
||||
{
|
||||
int inc = 0;
|
||||
|
||||
if (re->win)
|
||||
{
|
||||
re->win->gl_context->references++;
|
||||
eng_window_free(re->win);
|
||||
inc = 1;
|
||||
gl_wins--;
|
||||
}
|
||||
|
||||
re->w = e->output.w;
|
||||
re->h = e->output.h;
|
||||
re->win = eng_window_new(re->info->info.display,
|
||||
|
@ -962,10 +957,12 @@ eng_setup(Evas *eo_e, void *in)
|
|||
re->info->info.destination_alpha,
|
||||
re->info->info.rotation);
|
||||
eng_window_use(re->win);
|
||||
if (re->win) gl_wins++;
|
||||
if ((re->win) && (inc))
|
||||
if (re->win)
|
||||
{
|
||||
gl_wins++;
|
||||
re->win->gl_context->references--;
|
||||
}
|
||||
}
|
||||
else if ((re->win->w != e->output.w) ||
|
||||
(re->win->h != e->output.h) ||
|
||||
(re->info->info.rotation != re->win->rot))
|
||||
|
|
Loading…
Reference in New Issue