]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap parser: Fail immediately if we see unexpected ')' while reading atom.
authorTimo Sirainen <tss@iki.fi>
Thu, 20 May 2010 07:25:47 +0000 (09:25 +0200)
committerTimo Sirainen <tss@iki.fi>
Thu, 20 May 2010 07:25:47 +0000 (09:25 +0200)
--HG--
branch : HEAD

src/lib-imap/imap-parser.c

index 1f76d38cd3b240a93f91dcdf8f58536680877762..f7146cca2761fda1e302d6123a1bbb655e3bf1b0 100644 (file)
@@ -264,11 +264,13 @@ static int imap_parser_read_atom(struct imap_parser *parser,
                        imap_parser_save_arg(parser, data, i);
                        break;
                } else if (data[i] == ')') {
-                       if (parser->list_arg != NULL ||
-                           (parser->flags &
-                            IMAP_PARSE_FLAG_ATOM_ALLCHARS) == 0) {
+                       if (parser->list_arg != NULL) {
                                imap_parser_save_arg(parser, data, i);
                                break;
+                       } else if ((parser->flags &
+                                   IMAP_PARSE_FLAG_ATOM_ALLCHARS) == 0) {
+                               parser->error = "Unexpected ')'";
+                               return FALSE;
                        }
                        /* assume it's part of the atom */
                } else if (!is_valid_atom_char(parser, data[i]))