changeset 7357:7d4f7c7095dd HEAD

imap_quote(): Don't crash if allocating from data stack pool.
author Timo Sirainen <tss@iki.fi>
date Thu, 06 Mar 2008 09:42:16 +0200
parents 25551453b13c
children ffb7e8b1c114
files src/lib-imap/imap-quote.c
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap/imap-quote.c	Thu Mar 06 02:08:44 2008 +0200
+++ b/src/lib-imap/imap-quote.c	Thu Mar 06 09:42:16 2008 +0200
@@ -91,18 +91,20 @@
 const char *imap_quote(pool_t pool, const unsigned char *value,
 		       size_t value_len)
 {
+	string_t *str;
 	char *ret;
 
 	if (value == NULL)
 		return "NIL";
 
-	T_BEGIN {
-		   string_t *str;
+	if (!pool->datastack_pool)
+		t_push();
 
-		   str = t_str_new(value_len + MAX_INT_STRLEN + 5);
-		   imap_quote_append(str, value, value_len, TRUE);
-		   ret = p_strndup(pool, str_data(str), str_len(str));
-	} T_END;
+	str = t_str_new(value_len + MAX_INT_STRLEN + 5);
+	imap_quote_append(str, value, value_len, TRUE);
+	ret = p_strndup(pool, str_data(str), str_len(str));
 
+	if (!pool->datastack_pool)
+		t_pop();
 	return ret;
 }