summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-irc/xchat/files/xc208-fixsocks5.diff')
-rw-r--r--net-irc/xchat/files/xc208-fixsocks5.diff22
1 files changed, 22 insertions, 0 deletions
diff --git a/net-irc/xchat/files/xc208-fixsocks5.diff b/net-irc/xchat/files/xc208-fixsocks5.diff
new file mode 100644
index 000000000000..816801477075
--- /dev/null
+++ b/net-irc/xchat/files/xc208-fixsocks5.diff
@@ -0,0 +1,22 @@
+# Fix broken Socks5 traversal in xchat <= 2.0.8
+diff -ru xchat-2.0.8/src/common/server.c xchat-2.0.9/src/common/server.c
+--- xchat-2.0.8/src/common/server.c 2004-03-16 15:33:47.000000000 +1100
++++ xchat-2.0.8p1/src/common/server.c 2004-04-05 15:33:15.000000000 +1000
+@@ -1054,7 +1054,7 @@
+ struct sock5_connect1 sc1;
+ unsigned char *sc2;
+ unsigned int packetlen, addrlen;
+- unsigned char buf[10];
++ unsigned char buf[260];
+
+ sc1.version = 5;
+ sc1.nmethods = 1;
+@@ -1095,7 +1095,7 @@
+ {
+ if (recv (sok, buf, 1, 0) != 1)
+ return 1;
+- packetlen = buf[0] + 2;
++ packetlen = buf[0] + 2; /* can't exceed 260 */
+ if (recv (sok, buf, packetlen, 0) != packetlen)
+ return 1;
+ }