xwayland: Fix leak of xwl_screen on init
On screen init, if any of the private type registration fails we would return FALSE without actually freeing the xwl_screen we just allocated. This is not a serious leak as failure at that point would lead to the premature termination of Xwayland at startup, but covscan complains and it's easy enough to fix. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
This commit is contained in:
parent
72c5d153c9
commit
138d4eba7b
|
@ -549,10 +549,6 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
|||
Bool use_eglstreams = FALSE;
|
||||
#endif
|
||||
|
||||
xwl_screen = calloc(1, sizeof *xwl_screen);
|
||||
if (xwl_screen == NULL)
|
||||
return FALSE;
|
||||
|
||||
if (!dixRegisterPrivateKey(&xwl_screen_private_key, PRIVATE_SCREEN, 0))
|
||||
return FALSE;
|
||||
if (!xwl_pixmap_init())
|
||||
|
@ -567,6 +563,10 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
|||
sizeof(struct xwl_client)))
|
||||
return FALSE;
|
||||
|
||||
xwl_screen = calloc(1, sizeof *xwl_screen);
|
||||
if (xwl_screen == NULL)
|
||||
return FALSE;
|
||||
|
||||
dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen);
|
||||
xwl_screen->screen = pScreen;
|
||||
|
||||
|
|
Loading…
Reference in New Issue