From 49941ef169fd95f7850b32920bc101dbbf7f3c01 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 17 Jan 2007 19:13:53 +0000 Subject: [PATCH] (recvclient): Fix race condition: when io_output_all() blocked, then got unblocked by command abortion, it could then block in io_input(). --- src/lib/player/recvclient.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/player/recvclient.c b/src/lib/player/recvclient.c index 2b11d941..f1b1480a 100644 --- a/src/lib/player/recvclient.c +++ b/src/lib/player/recvclient.c @@ -62,6 +62,8 @@ recvclient(char *cmd, int size) count = io_gets(player->iop, cmd, size); while (!player->aborted && count < 0) { io_output_all(player->iop); + if (player->aborted) + return -2; io_input(player->iop, IO_WAIT); if (io_error(player->iop)) player->aborted++;