summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-proxy/squid/files/squid-3.1.0.13_beta-qafixes.patch')
-rw-r--r--net-proxy/squid/files/squid-3.1.0.13_beta-qafixes.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/net-proxy/squid/files/squid-3.1.0.13_beta-qafixes.patch b/net-proxy/squid/files/squid-3.1.0.13_beta-qafixes.patch
new file mode 100644
index 000000000000..510c490f21f8
--- /dev/null
+++ b/net-proxy/squid/files/squid-3.1.0.13_beta-qafixes.patch
@@ -0,0 +1,43 @@
+diff -Nru squid-3.1.0.13.orig/src/forward.cc squid-3.1.0.13/src/forward.cc
+--- squid-3.1.0.13.orig/src/forward.cc 2009-08-04 15:32:17.000000000 +0200
++++ squid-3.1.0.13/src/forward.cc 2009-08-06 23:34:54.000000000 +0200
+@@ -995,7 +995,12 @@
+ break;
+
+ if (o->cmsg_level == SOL_IP && o->cmsg_type == IP_TOS) {
+- clientFde->upstreamTOS = (unsigned char)(*(int*)CMSG_DATA(o));
++ union {
++ unsigned char *pchar;
++ int *pint;
++ } data;
++ data.pchar = CMSG_DATA(o);
++ clientFde->upstreamTOS = (unsigned char)*data.pint;
+ break;
+ }
+ p += CMSG_LEN(o->cmsg_len);
+diff -Nru squid-3.1.0.13.orig/src/ftp.cc squid-3.1.0.13/src/ftp.cc
+--- squid-3.1.0.13.orig/src/ftp.cc 2009-08-04 15:32:17.000000000 +0200
++++ squid-3.1.0.13/src/ftp.cc 2009-08-06 23:32:39.000000000 +0200
+@@ -534,16 +534,18 @@
+ void
+ FtpStateData::loginParser(const char *login, int escaped)
+ {
+- char *s = NULL;
++ const char *s = NULL;
+ debugs(9, 4, HERE << ": login='" << login << "', escaped=" << escaped);
+ debugs(9, 9, HERE << ": IN : login='" << login << "', escaped=" << escaped << ", user=" << user << ", password=" << password);
+
+ if ((s = strchr(login, ':'))) {
+- *s = '\0';
+-
+ /* if there was a username part */
+ if (s > login) {
+- xstrncpy(user, login, MAX_URL);
++ int len = s - login;
++ if (len > MAX_URL)
++ len = MAX_URL;
++ xstrncpy(user, login, len);
++ user[len] = '\0';
+ if (escaped)
+ rfc1738_unescape(user);
+ }