summaryrefslogtreecommitdiff
path: root/testing/cyrus-sasl/0018_auth_rimap_quotes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/cyrus-sasl/0018_auth_rimap_quotes.patch')
-rw-r--r--testing/cyrus-sasl/0018_auth_rimap_quotes.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/testing/cyrus-sasl/0018_auth_rimap_quotes.patch b/testing/cyrus-sasl/0018_auth_rimap_quotes.patch
new file mode 100644
index 000000000..13fa999f0
--- /dev/null
+++ b/testing/cyrus-sasl/0018_auth_rimap_quotes.patch
@@ -0,0 +1,35 @@
+0016_auth_rimap_quotes.dpatch by <fabbe@debian.org>
+
+All lines beginning with `## DP:' are a description of the patch.
+Avoid infinite loop when username/password has a double quote character.
+Upstream change: https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/sasl/saslauthd/auth_rimap.c.diff?r1=1.12;r2=1.13
+
+diff -urNad etch~/saslauthd/auth_rimap.c etch/saslauthd/auth_rimap.c
+--- etch~/saslauthd/auth_rimap.c 2007-03-29 15:16:20.000000000 +0300
++++ etch/saslauthd/auth_rimap.c 2008-02-13 13:42:53.000000000 +0200
+@@ -162,6 +162,7 @@
+ num_quotes = 0;
+ p1 = s;
+ while ((p1 = strchr(p1, '"')) != NULL) {
++ p1++;
+ num_quotes++;
+ }
+
+@@ -438,7 +439,7 @@
+ syslog(LOG_WARNING, "auth_rimap: writev: %m");
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+ (void)close(s);
+ return strdup(RESP_IERROR);
+@@ -447,7 +448,7 @@
+ /* don't need these any longer */
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+
+ /* read and parse the LOGIN response */