]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-mail: message-address: Make sure incomplete paths are rejected by parser.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Thu, 12 Apr 2018 20:16:54 +0000 (22:16 +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 3a6206786fa563894a55ead7705e65051bfad7cd..ce77505e14315ee6292e402a6f2266e303110d95 100644 (file)
@@ -396,7 +396,9 @@ static int parse_path(struct message_address_parser_context *ctx)
        if (*ctx->parser.data != '<')
                return -1;
        if ((ret=parse_angle_addr(ctx, TRUE)) < 0 ||
-           (ctx->addr.mailbox != NULL && ctx->addr.domain == NULL)) {
+           (ctx->addr.mailbox != NULL &&
+            (ctx->addr.domain == NULL || *ctx->addr.domain == '\0')) ||
+           (ctx->addr.mailbox == NULL && ctx->addr.domain != NULL)) {
                ctx->addr.invalid_syntax = TRUE;
                ret = -1;
        }
index 0d8249b4f9c7df57092d7e4933df87529d520354..722e74bb7ecf6b5975b932973d6aafcd68d6c9be 100644 (file)
@@ -414,6 +414,7 @@ static void test_message_address_path_invalid(void)
                "<user>",
                "<@route@route2:user>",
                "<@domain>",
+               "<user@>",
        };
        const struct message_address *addr;
        unsigned int i;