[PATCH v2 3/7] lib-mail: parse_addr_spec: Like in rfc822_skip_comment() check if last_comment is not NULL
Pali Rohár
pali.rohar at gmail.com
Sun Jun 5 13:48:16 UTC 2016
This will fix possible NULL pointer dereference when caller does not set last_comment.
---
src/lib-mail/message-address.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/lib-mail/message-address.c b/src/lib-mail/message-address.c
index 9ce4a55..4e86185 100644
--- a/src/lib-mail/message-address.c
+++ b/src/lib-mail/message-address.c
@@ -158,7 +158,8 @@ static int parse_addr_spec(struct message_address_parser_context *ctx)
/* addr-spec = local-part "@" domain */
int ret, ret2;
- str_truncate(ctx->parser.last_comment, 0);
+ if (ctx->parser.last_comment != NULL)
+ str_truncate(ctx->parser.last_comment, 0);
ret = parse_local_part(ctx);
if (ret != 0 && *ctx->parser.data == '@') {
@@ -167,9 +168,11 @@ static int parse_addr_spec(struct message_address_parser_context *ctx)
ret = ret2;
}
- if (str_len(ctx->parser.last_comment) > 0) {
- ctx->addr.name =
- p_strdup(ctx->pool, str_c(ctx->parser.last_comment));
+ if (ctx->parser.last_comment != NULL) {
+ if (str_len(ctx->parser.last_comment) > 0) {
+ ctx->addr.name =
+ p_strdup(ctx->pool, str_c(ctx->parser.last_comment));
+ }
}
return ret;
}
--
1.7.9.5
More information about the dovecot
mailing list