summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-action/0verkill/files/0verkill-0.16-underflow-check.patch')
-rw-r--r--games-action/0verkill/files/0verkill-0.16-underflow-check.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/games-action/0verkill/files/0verkill-0.16-underflow-check.patch b/games-action/0verkill/files/0verkill-0.16-underflow-check.patch
new file mode 100644
index 000000000000..d0af396deafd
--- /dev/null
+++ b/games-action/0verkill/files/0verkill-0.16-underflow-check.patch
@@ -0,0 +1,17 @@
+The vulnerability is cause due to an integer underflow error in "recv_packet()"
+within the handling of a received UDP packet. This can be exploited to cause
+out-of-bounds memory access which crashes the server process via a UDP packet
+that is smaller than 12 bytes in size.
+
+http://bugs.gentoo.org/136222
+
+--- 0verkill-0.16/net.c
++++ 0verkill-0.16/net.c
+@@ -84,6 +84,7 @@
+ p=mem_alloc(max_len+12);
+ if (!p)return -1; /* not enough memory */
+ retval=recvfrom(fd,p,max_len+12,0,addr,addr_len);
++ if (retval<12)return -1; /* not enough data from network */
+ memcpy(packet,p+12,max_len);
+ crc=p[0]+(p[1]<<8)+(p[2]<<16)+(p[3]<<24);
+ s=p[4]+(p[5]<<8)+(p[6]<<16)+(p[7]<<24);