File 0005-lib-mail-Add-rfc822_parser_deinit.patch of Package dovecot22.8700

From f5cd17a27f0b666567747f8c921ebe1026970f11 Mon Sep 17 00:00:00 2001
From: Timo Sirainen <timo.sirainen@dovecot.fi>
Date: Fri, 22 Dec 2017 18:56:53 +0200
Subject: [PATCH 5/7] lib-mail: Add rfc822_parser_deinit()

It's not a strict requirement to call this, but it assert-crashes if the
state isn't valid.
---
 src/lib-mail/rfc822-parser.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/lib-mail/rfc822-parser.h b/src/lib-mail/rfc822-parser.h
index 87e9aa2..466a68a 100644
--- a/src/lib-mail/rfc822-parser.h
+++ b/src/lib-mail/rfc822-parser.h
@@ -16,6 +16,14 @@ extern unsigned char rfc822_atext_chars[256];
 void rfc822_parser_init(struct rfc822_parser_context *ctx,
 			const unsigned char *data, size_t size,
 			string_t *last_comment) ATTR_NULL(4);
+static inline void rfc822_parser_deinit(struct rfc822_parser_context *ctx)
+{
+	/* make sure the parsing didn't trigger a bug that caused reading
+	   past the end pointer. */
+	i_assert(ctx->data <= ctx->end);
+	/* make sure the parser is no longer accessed */
+	ctx->data = ctx->end = NULL;
+}
 
 /* The functions below return 1 = more data available, 0 = no more data
    available (but a value might have been returned now), -1 = invalid input.
-- 
2.1.4

openSUSE Build Service is sponsored by