diff options
Diffstat (limited to 'games-util/xqf/files/xqf-1.0.5-cpu-overrun.patch')
-rw-r--r-- | games-util/xqf/files/xqf-1.0.5-cpu-overrun.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/games-util/xqf/files/xqf-1.0.5-cpu-overrun.patch b/games-util/xqf/files/xqf-1.0.5-cpu-overrun.patch new file mode 100644 index 000000000000..567d82a6a6c2 --- /dev/null +++ b/games-util/xqf/files/xqf-1.0.5-cpu-overrun.patch @@ -0,0 +1,22 @@ +diff -aburN xqf.orig/src/launch.c xqf/src/launch.c +--- xqf.orig/src/launch.c 2009-10-13 11:58:24.000000000 +0200 ++++ xqf/src/launch.c 2009-10-13 11:59:35.000000000 +0200 +@@ -168,13 +168,17 @@ + + res = read (fd, cl->buffer + cl->pos, CLIENT_ERROR_BUFFER - 1 - cl->pos); + +- if (res <= 0) { /* read error or EOF */ ++ if (res < 0) { /* read error or EOF */ + if (errno == EAGAIN || errno == EWOULDBLOCK) + return; + + client_detach (cl); + return; + } ++ else if (res == 0) { ++ client_detach (cl); ++ return; ++ } + + if (cl->pos + res == CLIENT_ERROR_BUFFER - 1) { + tmp = &cl->buffer[CLIENT_ERROR_BUFFER - 1]; |