From c92f1e82812d748efb455765b8935f15051e8497 Mon Sep 17 00:00:00 2001 From: Themaister Date: Tue, 23 Oct 2012 22:27:15 +0200 Subject: [PATCH] Do not fail in OSS if write() returns 0. --- audio/oss.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audio/oss.c b/audio/oss.c index f0774dbdee..7dc32d9a5d 100644 --- a/audio/oss.c +++ b/audio/oss.c @@ -109,9 +109,9 @@ static ssize_t oss_write(void *data, const void *buf, size_t size) return 0; ssize_t ret; - if ((ret = write(*fd, buf, size)) <= 0) + if ((ret = write(*fd, buf, size)) < 0) { - if ((fcntl(*fd, F_GETFL) & O_NONBLOCK) && errno == EAGAIN) + if (errno == EAGAIN && (fcntl(*fd, F_GETFL) & O_NONBLOCK)) return 0; return -1;