]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-mail: message-address: Make parser properly reject paths with spurious trailing...
authorStephan Bosch <stephan.bosch@dovecot.fi>
Thu, 12 Apr 2018 19:27:32 +0000 (21:27 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Wed, 25 Apr 2018 08:12:06 +0000 (11:12 +0300)
src/lib-mail/message-address.c
src/lib-mail/test-message-address.c

index ce77505e14315ee6292e402a6f2266e303110d95..f7b383468db23579b940367020182d932671aa79 100644 (file)
@@ -396,6 +396,8 @@ static int parse_path(struct message_address_parser_context *ctx)
        if (*ctx->parser.data != '<')
                return -1;
        if ((ret=parse_angle_addr(ctx, TRUE)) < 0 ||
+           (ret=rfc822_skip_lwsp(&ctx->parser)) < 0 ||
+           ctx->parser.data != ctx->parser.end ||
            (ctx->addr.mailbox != NULL &&
             (ctx->addr.domain == NULL || *ctx->addr.domain == '\0')) ||
            (ctx->addr.mailbox == NULL && ctx->addr.domain != NULL)) {
index 722e74bb7ecf6b5975b932973d6aafcd68d6c9be..da0b0b23bf3e2b02635bb7a99e90e5983e0d8f72 100644 (file)
@@ -415,6 +415,7 @@ static void test_message_address_path_invalid(void)
                "<@route@route2:user>",
                "<@domain>",
                "<user@>",
+               "<user@domain>bladiebla",
        };
        const struct message_address *addr;
        unsigned int i;