diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | libsylph/imap.c | 2 |
3 files changed, 11 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2005-10-13 + + * libsylph/imap.c: imap_cmd_ok(): fixed parsing of literal data (skip + quotes). + 2005-10-12 * libsylph/recv.c: recv_bytes(): null-terminate the received data diff --git a/ChangeLog.ja b/ChangeLog.ja index bf5ae05d..939eb6b4 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,8 @@ +2005-10-13 + + * libsylph/imap.c: imap_cmd_ok(): リテラルデータのパースを修正(引用 + 部分をスキップ)。 + 2005-10-12 * libsylph/recv.c: recv_bytes(): 受信したデータを null 終端するように diff --git a/libsylph/imap.c b/libsylph/imap.c index 38bce92a..b5566797 100644 --- a/libsylph/imap.c +++ b/libsylph/imap.c @@ -3740,7 +3740,7 @@ static gint imap_cmd_ok(IMAPSession *session, GPtrArray *argbuf) while ((ok = imap_cmd_gen_recv(session, &buf)) == IMAP_SUCCESS) { g_string_append(str, buf); - if ((p = strrchr(buf, '{'))) { + if ((p = strrchr_with_skip_quote(buf, '"', '{'))) { /* literal */ p = strchr_cpy(p + 1, '}', obuf, sizeof(obuf)); len = atoi(obuf); |