summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch22
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];