aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-07-04Merge pull request #1111 from martinetd/wlr-seat-destroyDrew DeVault
wlr_seat destroy: fix use-after-free when destroying clients
2018-07-04wlr_seat destroy: fix use-after-free when destroying clientsDominique Martinet
wl_resource_for_each_safe isn't safe to use here because it accesses the list's head memory one last time at the end of the loop. Work around this by breaking out early. ==19880==ERROR: AddressSanitizer: heap-use-after-free on address 0x60d0000e6368 at pc 0x7fab68619de2 bp 0x7ffd5c91cee0 sp 0x7ffd5c91ced0 READ of size 8 at 0x60d0000e6368 thread T0 #0 0x7fab68619de1 in wlr_seat_destroy ../types/seat/wlr_seat.c:179 #1 0x7fab68619fb9 in handle_display_destroy ../types/seat/wlr_seat.c:196 #2 0x7fab688e4f8f in wl_priv_signal_emit src/wayland-server.c:2024 #3 0x7fab688e56ca in wl_display_destroy src/wayland-server.c:1092 #4 0x40c11e in server_fini ../sway/server.c:138 #5 0x40b1a8 in main ../sway/main.c:438 #6 0x7fab67b5e18a in __libc_start_main ../csu/libc-start.c:308 #7 0x409359 in _start (/opt/wayland/bin/sway+0x409359) 0x60d0000e6368 is located 24 bytes inside of 144-byte region [0x60d0000e6350,0x60d0000e63e0) freed by thread T0 here: #0 0x7fab6a7d6880 in __interceptor_free (/lib64/libasan.so.5+0xee880) #1 0x7fab68619805 in seat_client_handle_resource_destroy ../types/seat/wlr_seat.c:97 #2 0x7fab688e5025 in destroy_resource src/wayland-server.c:688 previously allocated by thread T0 here: #0 0x7fab6a7d6e50 in calloc (/lib64/libasan.so.5+0xeee50) #1 0x7fab686198df in seat_handle_bind ../types/seat/wlr_seat.c:127 #2 0x7fab6530503d in ffi_call_unix64 (/lib64/libffi.so.6+0x603d)
2018-07-03Merge pull request #1110 from apreiml/fix-focus-stack-changeDrew DeVault
fix: add stack update on focus change
2018-07-03fix style issueArmin Preiml
2018-07-03fix: add stack update on focus changeArmin Preiml
Enable the stack update again for focus changes on non-focusable views.
2018-07-03Merge pull request #1107 from ammen99/masteremersion
properly check if the point is inside the surface in wlr_surface_pointer_accepts_input
2018-07-03properly check if the point is inside the surface in ↵Ilia Bozhinov
wlr_surface_point_accepts_input
2018-07-01Merge pull request #1105 from RyanDwyer/xdg-surface-for-each-popupDrew DeVault
Introduce wlr_xdg_surface_for_each_popup
2018-07-01Introduce wlr_xdg_surface_for_each_popupRyan Dwyer
It is common to want to iterate an xdg-surface's popups separately from the toplevel and subsurfaces. For example, popups are typically rendered on top of most other surfaces. wlr_xdg_surface_for_each_surface continues to iterate both surfaces and popups to maintain backwards compatibility.
2018-07-01Merge pull request #1106 from martinetd/seat-destroy-uafemersion
wlr_seat destroy: fix use-after-free after primary selection source cancel
2018-07-01wlr_seat destroy: fix use-after-free after primary selection source cancelDominique Martinet
the primary_selection_source_destroy list points to memory freed by that cancel callback, so remove from list before freeing
2018-06-30Merge pull request #1104 from VincentVanlaer/logind-fd-leakDrew DeVault
Close fd's obtained from logind
2018-07-01Close fd's obtained from logindVincent Vanlaer
2018-06-30Merge pull request #1069 from emersion/screencopyDrew DeVault
Add wlr-screencopy-unstable-v1 support
2018-06-30render/gles2: ditch extra parensemersion
2018-06-30examples/screencopy: use libpngemersion
2018-06-30screencopy: listen to buffer destroyemersion
2018-06-30screencopy: make frame resource inert after copyemersion
2018-06-30screncopy: update protocolemersion
2018-06-30screencopy: add capture_output_region supportemersion
2018-06-30screencopy: add support for frame flagsemersion
2018-06-30screencopy: add presentation timestampemersion
2018-06-30screencopy-v1: add basic implementationemersion
2018-06-30Merge pull request #1102 from martinetd/wlr-subsurface-from-wlr-surfaceDrew DeVault
s/wlr_subsurface_from_surface/wlr_subsurface_from_wlr_surface/
2018-06-30s/wlr_subsurface_from_surface/wlr_subsurface_from_wlr_surface/Dominique Martinet
This was the only x_from_wlr_surface function that lacked the wlr_ prefix, let's have an API as uniform as possible.
2018-06-30Merge pull request #1101 from martinetd/static-analysisemersion
Static analysis fixes
2018-06-30headless add_input_device: fix leak on errorDominique Martinet
Found through static analysis
2018-06-30export dmabuf manager_handle_capture_output: fix leak on errorDominique Martinet
Found through static analysis
2018-06-30backend autocreate: fix leak when WLR_BACKENDS is setDominique Martinet
Found through static analysis
2018-06-30wayland backend: fix width/height == 0 checkDominique Martinet
We cannot handle just one of the two being NULL later down the road (e.g. divide by zero in matrix projection code), just ignore any such configure request. Found through static analysis
2018-06-30wlr_renderer_destroy: fix renderer NULL checkDominique Martinet
renderer is checked for NULL, but was dereferenced before that. Found through static analysis
2018-06-30wlr_output: fix scope for 'now'Dominique Martinet
'when' points to now that was defined in the if, so compiler could reuse that memory area by the time 'when' is called Found through static analysis.
2018-06-30util/create_tmpfile: set restrictive umask for these filesDominique Martinet
Even if the file is removed right away, a race with someone using inotify is definitely possible, so play safe and restrict umask for our tmpfiles Found through static analysis.
2018-06-30wlr_keyboard: fix mmap leak + logic on close for keymap_fdDominique Martinet
mmap leak found through static analysis
2018-06-30direct session backend: fix closing -1 on errorDominique Martinet
Found through static analysis
2018-06-30rootston: fix leak in handle_layer_shell_surfaceDominique Martinet
Found through static analysis
2018-06-30x11 backend init: fix leak on failed XOpenDisplayDominique Martinet
Found through static analysis
2018-06-30wayland backend seat: fix NULL output checkDominique Martinet
The test was done after dereferencing output in pointer_handle_enter, just move it up one line. No reason pointer_handle_leave would not need the check if enter needs it, add it there. Found through static analysis.
2018-06-30drm backend: overflow fixesDominique Martinet
These operations are done in 32-bit arithmetics before being casted to 64-bit, thus can overflow before the cast. Casting early fixes the issue. Found through static analysis
2018-06-29Merge pull request #1100 from apreiml/fix-awt-focus-failureemersion
do not send focus request to a window that doesn't allow it
2018-06-29fix: tabs instead of spacesArmin Preiml
2018-06-29do not send focus request to a window that doesn't allow thisArmin Preiml
2018-06-28Merge pull request #1097 from emersion/contributing-inert-destroy-orderDrew DeVault
contributing: move wl_resource_set_user_data() right before free()
2018-06-28Merge pull request #1092 from martinetd/idle_inhibitemersion
Idle inhibit cleanup
2018-06-28contributing: move wl_resource_set_user_data() right before free()emersion
2018-06-28wlr_idle_inhibit_v1: cleanup destroy handlersDominique Martinet
- Rename handlers to <type>_handle_resource_destroy and <type>_handle_destroy to be coherent - Make sure we never destroy wl_resources when we shouldn't Updates #999
2018-06-28Merge pull request #1093 from martinetd/xdg_popupemersion
xdg_shell popup: fix potential segv in handle_destroy
2018-06-28wlr_idle_inhibit_v1: add *data pointer to wlr structsDominique Martinet
2018-06-28xdg_popup: fix call to to handle_grab for inert popupDominique Martinet
2018-06-28xdg_shell popup: fix potential segv in handle_destroyDominique Martinet
surface could be NULL there if the popup had been made inert before