Mercurial > dovecot > core-2.2
changeset 22155:fe6b566d6f1c
lib-mail: parse_addr_spec: Like in rfc822_skip_comment() check if last_comment is not NULL
This will fix possible NULL pointer dereference when caller does not set last_comment.
author | Pali Rohár <pali.rohar@gmail.com> |
---|---|
date | Sun, 05 Jun 2016 15:48:16 +0200 |
parents | 91278ef69de7 |
children | b37395fd83cd |
files | src/lib-mail/message-address.c |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-address.c Sun Jun 05 15:48:15 2016 +0200 +++ b/src/lib-mail/message-address.c Sun Jun 05 15:48:16 2016 +0200 @@ -158,7 +158,8 @@ /* 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 @@ 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; }