]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
rfc822_parse_[dot_]atom(): Return failure if there isn't at least one character.
authorTimo Sirainen <tss@iki.fi>
Sun, 7 Sep 2008 16:44:09 +0000 (19:44 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 7 Sep 2008 16:44:09 +0000 (19:44 +0300)
--HG--
branch : HEAD

src/lib-mail/rfc822-parser.c

index 7a3b92a07152c2ff136aedb8bad47b8e7bef9391..03378966626dd83a0ac07929bc17731ae391636b 100644 (file)
@@ -132,7 +132,10 @@ int rfc822_parse_atom(struct rfc822_parser_context *ctx, string_t *str)
           atext           =
             ; Any character except controls, SP, and specials.
        */
-       for (start = ctx->data; ctx->data != ctx->end; ctx->data++) {
+       if (ctx->data == ctx->end || !IS_ATEXT(*ctx->data))
+               return -1;
+
+       for (start = ctx->data++; ctx->data != ctx->end; ctx->data++) {
                if (IS_ATEXT(*ctx->data))
                        continue;
 
@@ -158,7 +161,10 @@ int rfc822_parse_dot_atom(struct rfc822_parser_context *ctx, string_t *str)
 
           For RFC-822 compatibility allow LWSP around '.'
        */
-       for (start = ctx->data; ctx->data != ctx->end; ctx->data++) {
+       if (ctx->data == ctx->end || !IS_ATEXT(*ctx->data))
+               return -1;
+
+       for (start = ctx->data++; ctx->data != ctx->end; ctx->data++) {
                if (IS_ATEXT(*ctx->data))
                        continue;