qrexec: fix infinite loop when multiple services are waiting for GUI

Reported by @ctrlaltdel
Fixes QubesOS/qubes-issues#3433
This commit is contained in:
Marek Marczykowski-Górecki 2017-12-28 17:03:50 +01:00
parent 180146a5c2
commit 4c47ce139e
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -624,8 +624,8 @@ void handle_server_exec_request_init(struct msg_header *hdr)
if (hdr->type != MSG_SERVICE_CONNECT && wait_for_session_maybe(buf)) {
/* waiting for session, postpone actual call */
int slot_index = 0;
while (slot_index < MAX_FDS)
int slot_index;
for (slot_index = 0; slot_index < MAX_FDS; slot_index++)
if (!requests_waiting_for_session[slot_index].cmdline)
break;
if (slot_index == MAX_FDS) {