efba92060d
- fix hang in rimap auth method (#438533) - build the krb4 plugin (#154675)
39 lines
1.1 KiB
Diff
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 */
|