From b0918b1058a704675fc2590ee9ff3bef6324f734 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 4 Jul 2018 14:45:35 +0900 Subject: ipc-server: add display destroy listener and remove ipc_terminate wl_event_source_remove() is illegal after display has been destroyed, so just destroy everything when we still can. ==20392==ERROR: AddressSanitizer: heap-use-after-free on address 0x607000001240 at pc 0x00000048e86e bp 0x7ffe4b557e00 sp 0x7ffe4b557df0 READ of size 8 at 0x607000001240 thread T0 #0 0x48e86d in wl_list_insert ../common/list.c:149 #1 0x7fdf673d4d7d in wl_event_source_remove src/event-loop.c:487 #2 0x41b742 in ipc_terminate ../sway/ipc-server.c:94 #3 0x40b1ad in main ../sway/main.c:440 #4 0x7fdf6664c18a in __libc_start_main ../csu/libc-start.c:308 #5 0x409359 in _start (/opt/wayland/bin/sway+0x409359) 0x607000001240 is located 48 bytes inside of 72-byte region [0x607000001210,0x607000001258) freed by thread T0 here: #0 0x7fdf692c4880 in __interceptor_free (/lib64/libasan.so.5+0xee880) #1 0x7fdf673d371a in wl_display_destroy src/wayland-server.c:1097 previously allocated by thread T0 here: #0 0x7fdf692c4c48 in malloc (/lib64/libasan.so.5+0xeec48) #1 0x7fdf673d4d9e in wl_event_loop_create src/event-loop.c:522 #2 0x40acb2 in main ../sway/main.c:363 #3 0x7fdf6664c18a in __libc_start_main ../csu/libc-start.c:308 --- include/sway/ipc-server.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include/sway/ipc-server.h') diff --git a/include/sway/ipc-server.h b/include/sway/ipc-server.h index dd16a175..026b5554 100644 --- a/include/sway/ipc-server.h +++ b/include/sway/ipc-server.h @@ -9,8 +9,6 @@ struct sway_server; void ipc_init(struct sway_server *server); -void ipc_terminate(void); - struct sockaddr_un *ipc_user_sockaddr(void); void ipc_event_workspace(struct sway_container *old, -- cgit v1.2.3-54-g00ecf