Blob Blame History Raw
From aedb205c79395de77127fb7166b29b09319df23c Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Tue, 24 Mar 2020 21:11:01 +0100
Subject: [PATCH] lib-smtp: smtp-syntax - Do not allow NULL return parameters
 for smtp_xtext_parse().

---
 src/lib-smtp/smtp-syntax.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/lib-smtp/smtp-syntax.c b/src/lib-smtp/smtp-syntax.c
index 6826682af1..0b0a91ce07 100644
--- a/src/lib-smtp/smtp-syntax.c
+++ b/src/lib-smtp/smtp-syntax.c
@@ -86,20 +86,20 @@ int smtp_xtext_parse(const char *xtext,
 {
 	struct smtp_parser parser;
 	string_t *value = NULL;
-	int ret;
+
+	*value_r = NULL;
+	*error_r = NULL;
 
 	if (xtext == NULL || *xtext == '\0') {
 		*value_r = "";
 		return 1;
 	}
 
-	if (value_r != NULL)
-		value = t_str_new(256);
+	value = t_str_new(256);
 	smtp_parser_init(&parser, pool_datastack_create(), xtext);
 
-	if ((ret=smtp_parser_parse_xtext(&parser, value)) < 0) {
-		if (error_r != NULL)
-			*error_r = parser.error;
+	if (smtp_parser_parse_xtext(&parser, value) < 0) {
+		*error_r = parser.error;
 		return -1;
 	}
 	if (parser.cur < parser.end) {
@@ -110,8 +110,7 @@ int smtp_xtext_parse(const char *xtext,
 	if (value_r != NULL) {
 		*value_r = str_c(value);
 		if (strlen(*value_r) != str_len(value)) {
-			if (*error_r != NULL)
-				*error_r = "Encountered NUL character in xtext";
+			*error_r = "Encountered NUL character in xtext";
 			return -1;
 		}
 	}