From 781d9aad4d9083f4ae380901f7b52e8fd82bf2a4 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 15 Oct 2009 19:27:04 +0200 Subject: Bug #468736 - Prevent recursion in em-format --- em-format/em-format.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'em-format/em-format.c') diff --git a/em-format/em-format.c b/em-format/em-format.c index 19423e90a7..a6b01f4b9a 100644 --- a/em-format/em-format.c +++ b/em-format/em-format.c @@ -645,6 +645,7 @@ em_format_part_as(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const g_free(basestr); if (mime_type != NULL) { + gboolean is_fallback = FALSE; if (g_ascii_strcasecmp(mime_type, "application/octet-stream") == 0) { emf->snoop_mime_type = mime_type = em_format_snoop_type(part); if (mime_type == NULL) @@ -652,13 +653,19 @@ em_format_part_as(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const } handle = em_format_find_handler(emf, mime_type); - if (handle == NULL) + if (handle == NULL) { handle = em_format_fallback_handler(emf, mime_type); + is_fallback = TRUE; + } if (handle != NULL && !em_format_is_attachment(emf, part)) { d(printf("running handler for type '%s'\n", mime_type)); + if (is_fallback) + camel_object_meta_set (part, "EMF-Fallback", "1"); handle->handler(emf, stream, part, handle); + if (is_fallback) + camel_object_meta_set (part, "EMF-Fallback", NULL); goto finish; } d(printf("this type is an attachment? '%s'\n", mime_type)); -- cgit