Fix potential memory leak of two pointers (xwayland and client) 57/27257/6
authorduerpei <duep.fnst@fujitsu.com>
Mon, 14 Mar 2022 05:27:43 +0000 (13:27 +0800)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 18 Mar 2022 10:17:05 +0000 (10:17 +0000)
commit4c2a3dbe7b652e679c9228d7d8c81aa641bd968b
tree14f974ce012b6e76c5680ed624633e5d2d9b9ac1
parent7d671af1dc9bc1d1e70a113a2e4a84e63a141814
Fix potential memory leak of two pointers (xwayland and client)

This backports four patches from weston to solve a memory leak problem
These four patches are:
https://gitlab.freedesktop.org/wayland/weston/-/commit/5a6604a7a2e52e5cd84c1f53724b3f7c325b5dff.patch
https://gitlab.freedesktop.org/wayland/weston/-/commit/f53c05d3c2c19c139c52e9bd621c2654dd3dac69.patch
https://gitlab.freedesktop.org/wayland/weston/-/commit/e2583ca0844bd7a8ce4fc94da9ad67edf49ffd45.patch
https://gitlab.freedesktop.org/wayland/weston/-/commit/8740037a93c7c4400cc381ecf3009d1e4014be07.patch

The following is the valgrind log:
 160  bytes in 1 blocks are definitely lost in loss record 39 of 66
     at 0x484B64C: calloc (in /usr/lib/valgrind/vgpreload_memcheck-arm64-linux.so)
     by 0x4A73C87: ??? (in /usr/lib/libweston-desktop-8.so.0.0.0)
     by 0x4A7184F: weston_desktop_create (in /usr/lib/libweston-desktop-8.so.0.0.0)
     by 0x487096B: ivi_desktop_init (in /usr/lib/agl-compositor/libexec_compositor.so.0.0.0)
     by 0x486F5E7: wet_main (in /usr/lib/agl-compositor/libexec_compositor.so.0.0.0)
     by 0x48B010F: (below main) (in /lib/libc-2.31.so)

In agl-compositor/src/composiotr.c
"ivi->desktop->compositor->xwayland" is zalloced by
wet_main()->ivi_desktop_init()->weston_desktop_create()->weston_desktop_xwayland_init()
"ivi->desktop->compositor->xwayland->client" is zalloced by
wet_main()->ivi_desktop_init()->weston_desktop_create()->weston_desktop_xwayland_init()->weston_desktop_client_create()

"ivi->desktop->compositor->xwayland" and
"ivi->desktop->compositor->xwayland->client"
The memory pointed to has not been released
Now, I want to free the memory pointed by the two pointers.
What can do this is the function of weston_desktop_xwayland_fini() in
0003-libweston-desktop-add-weston_desktop_xwayland_fini.patch
And the submission of this patch depends on the first three patches,
so I submitted these four patches.

Bug-AGL: SPEC-4291

Signed-off-by: duerpei <duep.fnst@fujitsu.com>
Change-Id: I3b1140e88eadad9e378c2bb43221026e280ecd90
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27257
Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jenkins Job builder account
meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-add-weston_layer_fini.patch [new file with mode: 0644]
meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-desktop-rename-weston_desktop_client_destr.patch [new file with mode: 0644]
meta-agl-core/recipes-graphics/wayland/weston/0002-libweston-desktop-introduce-weston_desktop_client_de.patch [new file with mode: 0644]
meta-agl-core/recipes-graphics/wayland/weston/0003-libweston-desktop-add-weston_desktop_xwayland_fini.patch [new file with mode: 0644]
meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc