aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2018-03-27 09:17:47 +0200
committerDominique Martinet <asmadeus@codewreck.org>2018-03-27 09:17:47 +0200
commit0c4d347d1ebc7c65cebd3fff40d16d894327cda7 (patch)
treeef38bd0f03ba96e40e7e08628b572e6b897f07e4
parent84ce2afe26bdb9ce29c86b191b68ee94d08b5e14 (diff)
rootston: Fix segfault in seat unfullscreening
==32557==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000425f96 bp 0x7fff8ac19de0 sp 0x7fff8ac19d20 T0) ==32557==The signal is caused by a READ memory access. ==32557==Hint: address points to the zero page. #0 0x425f95 in roots_seat_set_focus ../rootston/seat.c:737 #1 0x40bcd6 in roots_cursor_press_button ../rootston/cursor.c:272 #2 0x40c1f7 in roots_cursor_handle_button ../rootston/cursor.c:298 #3 0x42179b in handle_cursor_button ../rootston/seat.c:58 #4 0x7f1651062367 in wlr_signal_emit_safe ../util/signal.c:29 #5 0x7f165101b532 in handle_pointer_button ../types/wlr_cursor.c:344 #6 0x7f1651062367 in wlr_signal_emit_safe ../util/signal.c:29 #7 0x7f1650ff633b in handle_pointer_button ../backend/libinput/pointer.c:85 #8 0x7f1650ff5291 in wlr_libinput_event ../backend/libinput/events.c:215 #9 0x7f1650ff3990 in wlr_libinput_readable ../backend/libinput/backend.c:35 #10 0x7f1650d88c11 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0x9c11) #11 0x7f1650d87449 in wl_display_run (/lib64/libwayland-server.so.0+0x8449) #12 0x418e90 in main ../rootston/main.c:81 #13 0x7f164ff7ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29) #14 0x405829 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x405829) introduced by #680
-rw-r--r--rootston/seat.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rootston/seat.c b/rootston/seat.c
index 017e6221..bdcad5c7 100644
--- a/rootston/seat.c
+++ b/rootston/seat.c
@@ -733,7 +733,7 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) {
}
#endif
- if (unfullscreen) {
+ if (view && unfullscreen) {
struct roots_desktop *desktop = view->desktop;
struct roots_output *output;
struct wlr_box box;