cyrus-sasl/cyrus-sasl-2.1.22-rimap.patch

39 lines
1.1 KiB
Diff

diff -up cyrus-sasl-2.1.22/saslauthd/auth_rimap.c.rimap cyrus-sasl-2.1.22/saslauthd/auth_rimap.c
--- cyrus-sasl-2.1.22/saslauthd/auth_rimap.c.rimap 2006-04-06 22:19:54.000000000 +0200
+++ cyrus-sasl-2.1.22/saslauthd/auth_rimap.c 2008-07-01 22:48:09.000000000 +0200
@@ -163,6 +163,7 @@ qstring (
p1 = s;
while ((p1 = strchr(p1, '"')) != NULL) {
num_quotes++;
+ ++p1;
}
if (!num_quotes) {
@@ -198,7 +199,7 @@ qstring (
}
*p2++ = *p1++;
}
- strcat(p2, "\"");
+ strcpy(p2, "\"");
return c;
}
@@ -438,7 +439,7 @@ auth_rimap (
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 @@ auth_rimap (
/* 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 */