From 4c36ec1850b6b7bdab9c22008500ca8f47fdf550 Mon Sep 17 00:00:00 2001
From: Viet Hoa Dinh <dvh@fb.com>
Date: Wed, 13 Jul 2016 07:59:56 -0700
Subject: [PATCH] Fixed crash with IDLE
---
src/low-level/imap/idle.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/low-level/imap/idle.c b/src/low-level/imap/idle.c
index 0052304..caacd5c 100644
--- a/src/low-level/imap/idle.c
+++ b/src/low-level/imap/idle.c
@@ -75,6 +75,7 @@ int mailimap_idle(mailimap * session)
struct mailimap_continue_req * cont_req;
struct mailimap_response * response;
clist * resp_data_list;
+ struct mailimap_parser_context * parser_ctx;
session->imap_selection_info->sel_has_exists = 0;
session->imap_selection_info->sel_has_recent = 0;
@@ -100,8 +101,12 @@ int mailimap_idle(mailimap * session)
indx = 0;
+ parser_ctx = mailimap_parser_context_new(session);
+ if (parser_ctx == NULL)
+ return MAILIMAP_ERROR_MEMORY;
+
r = mailimap_struct_multiple_parse(session->imap_stream,
- session->imap_stream_buffer, NULL,
+ session->imap_stream_buffer, parser_ctx,
&indx,
&resp_data_list,
(mailimap_struct_parser *)
@@ -109,6 +114,7 @@ int mailimap_idle(mailimap * session)
(mailimap_struct_destructor *)
mailimap_response_data_free,
session->imap_progr_rate, session->imap_progr_fun);
+ mailimap_parser_context_free(parser_ctx);
if ((r != MAILIMAP_NO_ERROR) && (r != MAILIMAP_ERROR_PARSE))
return r;
if (r == MAILIMAP_NO_ERROR) {