1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 15:48:49 -05:00

imap: quote atoms properly when escaping characters

Updates test 800 to verify

Fixes #1902
Closes #1903
This commit is contained in:
Daniel Stenberg 2017-09-21 09:17:06 +02:00
parent a4db3f7046
commit 3b05f79ef8
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 4 additions and 4 deletions

View File

@ -1797,7 +1797,7 @@ static char *imap_atom(const char *str, bool escape_only)
return strdup(str);
/* Calculate the new string length */
newlen = strlen(str) + backsp_count + quote_count + (others_exists ? 2 : 0);
newlen = strlen(str) + backsp_count + quote_count + (escape_only ? 0 : 2);
/* Allocate the new string */
newstr = (char *) malloc((newlen + 1) * sizeof(char));
@ -1806,7 +1806,7 @@ static char *imap_atom(const char *str, bool escape_only)
/* Surround the string in quotes if necessary */
p2 = newstr;
if(others_exists) {
if(!escape_only) {
newstr[0] = '"';
newstr[newlen - 1] = '"';
p2++;

View File

@ -31,7 +31,7 @@ imap
IMAP FETCH message
</name>
<command>
'imap://%HOSTIP:%IMAPPORT/800/;UID=1' -u "user*:secret{"
'imap://%HOSTIP:%IMAPPORT/800/;UID=1' -u '"user:sec"ret{'
</command>
</client>
@ -40,7 +40,7 @@ IMAP FETCH message
<verify>
<protocol>
A001 CAPABILITY
A002 LOGIN "user*" "secret{"
A002 LOGIN "\"user" "sec\"ret{"
A003 SELECT 800
A004 FETCH 1 BODY[]
A005 LOGOUT