Commit graph

115 commits

Author SHA1 Message Date
Dominique Martinet
b0918b1058 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
2018-07-04 18:47:11 +09:00
Dominique Martinet
ebe69583c7 ipc-server: fix more use-after-frees on ipc_send_reply error
Since ipc_send_reply frees the client on error, we need to check the
return value properly as we access client later on

Found through static analysis.
2018-07-02 08:03:41 +09:00
Dominique Martinet
0ab04b7434 ipc-server: minor code cleanup
No logic change here, this one is mostly to please static analyzer:
 - client->fd can never be -1 (and if it could, close() a few lines below
would have needed the same check)
 - we never send permission denied error (dead code)
2018-07-02 08:03:41 +09:00
Dominique Martinet
546ddbcd5b ipc-server: fix double-free on send error in ipc_send_event
ipc_send_reply already does client disconnect on error, so we shouldn't
do it again.
We also need to process current index again as disconnect removes client
from the list we currently are processing (this is an indexed "list")

Found through static analysis.
2018-07-02 08:03:41 +09:00
Brian Ashworth
e072fbc6d9 Switch output storing from list_t to wl_list 2018-06-06 20:11:24 -04:00
Brian Ashworth
a1b5b93d29 Store sway_outputs so that they can be reenabled 2018-06-06 20:11:24 -04:00
Brian Ashworth
7c810dc344 Make command block implementation generic 2018-06-02 08:07:44 -04:00
Brian Ashworth
a6d43ff746 Implement IPC_GET_MARKS 2018-05-22 17:35:39 -04:00
Ryan Dwyer
c72940837c Implement IPC get_seats command 2018-05-12 18:17:36 +10:00
Dominique Martinet
25af959fe9 Fix gcc string truncation warnings 2018-04-13 22:47:27 +09:00
Tony Crisci
6b308dbeb7 address feedback 2018-04-05 22:50:10 -04:00
Tony Crisci
235798ff8e dont send ipc events when there are no listeners 2018-04-05 19:01:03 -04:00
Tony Crisci
0828c77251 rename input-manager functions 2018-04-02 08:49:38 -04:00
Tony Crisci
e677c5b204 rename seat functions 2018-04-02 08:45:37 -04:00
Drew DeVault
e6fa7a722e
Merge pull request #1669 from emersion/workspace-pointer-events
Fix pointer events for hidden workspaces
2018-03-30 18:49:18 -04:00
emersion
eb716c6c43
Fix segfaults when focusing a workspace 2018-03-30 16:12:02 -04:00
Drew DeVault
b28e6d2369 IPC fixes 2018-03-30 13:56:31 -04:00
Drew DeVault
f26ecd9f58 Merge remote-tracking branch 'origin/wlroots' into swaybar-layers 2018-03-30 00:04:04 -04:00
Tony Crisci
dc8c9fbeb6 Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"
This reverts commit 472e81f35d, reversing
changes made to 6b7841b11f.
2018-03-29 23:41:33 -04:00
Drew DeVault
d0c7f66e95
Revert "Refactor tree" 2018-03-29 23:29:29 -04:00
Drew DeVault
dbda7bfbed Move declaration into loop 2018-03-29 22:23:41 -04:00
Drew DeVault
ddc09940b1 Exit ipc_get_workspace_callback early 2018-03-29 22:16:43 -04:00
Drew DeVault
8efee109ad Implement modes 2018-03-29 22:11:08 -04:00
Drew DeVault
f3fbf19312 Do some small cleanup
- Fix workspace events (security config isn't in use so it wasn't being
  sent)
- Kill status bar process when swaybar exits
- Don't rearrange windows on every layer surface commit
2018-03-29 22:11:08 -04:00
Drew DeVault
bf7a4cd0eb Add bar configuration commands 2018-03-29 22:11:08 -04:00
Drew DeVault
6836074fed Implement enough IPC for swaybar to work 2018-03-29 22:11:08 -04:00
Tony Crisci
b90099b4b7 rename container functions 2018-03-29 16:40:40 -04:00
Tony Crisci
02804584e5 ipc new window event 2018-02-27 19:53:15 -05:00
Tony Crisci
ac8269d536 take seat param for handle_command and rename 2018-02-24 12:50:24 -05:00
Tony Crisci
52670c636c basic focus (without direction) 2018-02-14 16:47:23 -05:00
Tony Crisci
38a1628a76 clear handler context before ipc command 2018-01-21 14:21:32 -05:00
Dominique Martinet
67985e9031 sway: change all sway_log to wlr_log 2018-01-05 23:39:46 +01:00
Tony Crisci
f2985000f3 ipc get_inputs 2017-12-18 14:27:38 -05:00
emersion
4e2ab53119
Add IPC get_outputs 2017-12-18 14:06:03 +01:00
Tony Crisci
421f49fe03 basic get_tree 2017-12-03 08:33:52 -05:00
Drew DeVault
7753a0ec75 Wire up IPC server 2017-11-22 21:37:07 -05:00
Drew DeVault
733993a651 Move everything to sway/old/ 2017-11-18 11:22:02 -05:00
Drew DeVault
0f45fad18c Establish sway input submodule 2017-11-11 09:09:17 -05:00
Drew DeVault
7c448b4081 Fire up the wlroots backend and run the event loop 2017-11-11 09:08:50 -05:00
Johannes Lundberg
5a63f0f57b Fix build on FreeBSD adjusting/removing _XOPEN_SOURCE declaration. 2017-10-14 20:38:33 +02:00
Drew DeVault
6d83a59b46 Merge pull request #1263 from nyorain/master
Implement get_clipboard ipc message
2017-10-08 11:05:54 -04:00
lbonn
61005c3bda ipc/window-event: fill "container" on close events
Also use the recursive description to include children as well

Careful: send the event before deleting the parent
2017-10-08 11:54:46 +02:00
Hummer12007
6f355c6ff7 Raise max ipc message size limit to 256 MB 2017-08-14 20:43:37 +03:00
Ilya Lukyanov
1c5a96c112
Implement nonblocking IO in IPC server
Added client write buffer and handler for writable status on client
socket.
2017-08-08 19:23:50 +03:00
nyorain
1cca551c6f Add get_clipbard ipc errors; Adapt swaymsg
Also increase the get_clipboard timeout to 30 secs
2017-07-11 18:04:28 +02:00
nyorain
20888fbb5e Close fd in clipboard request 2017-07-11 17:12:53 +02:00
nyorain
727215c907 Add timeout; Fix receive loop & style issues 2017-07-11 17:07:06 +02:00
nyorain
f0463dab32 Signal base64 in clipboard type; Reimplement loop 2017-07-07 23:34:58 +02:00
nyorain
1e894c1166 Handle x11 text atoms in get_clipboard ipc 2017-07-07 22:34:00 +02:00
nyorain
c0f2acce4e Rework get_clipboard implementation 2017-07-07 21:51:34 +02:00