]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-imap: imap_seq_set_*parse() - Return empty input string as an error
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 2 Dec 2025 22:43:26 +0000 (00:43 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 3 Dec 2025 20:02:34 +0000 (22:02 +0200)
src/lib-imap/imap-seqset.c
src/lib-imap/test-imap-seqset.c

index 5e7ea214fa1a174b221b4cb7665e3571795cf6ed..b1f616d9f1be4c4cab2a42318f0dbf679a0e2384 100644 (file)
@@ -72,16 +72,14 @@ int imap_seq_set_parse(const char *str, ARRAY_TYPE(seq_range) *dest)
 {
        uint32_t seq1, seq2;
 
-       while (*str != '\0') {
+       do {
                if (get_next_seq_range(&str, &seq1, &seq2) < 0)
                        return -1;
                seq_range_array_add_range(dest, seq1, seq2);
 
                if (*str == ',')
                        str++;
-               else if (*str != '\0')
-                       return -1;
-       }
+       } while (*str != '\0');
        return 0;
 }
 
index 5d5b55a51c00c099d4b91fb27b33bbc703ef20e3..39b03d419f16b10442200a3ced69e4a1c35847f1 100644 (file)
@@ -58,6 +58,7 @@ static void test_imap_seq_set_parse(void)
                { "4294967295", "4294967294", 0 },
                { "4294967294:4294967295", "4294967294", 0 },
                { "4294967293:4294967295", "4294967293:4294967294", 0 },
+               { "", "", -1 },
                { ",", "", -1 },
                { "1,,5", "", -1 },
                { "1:2,3,,5", "", -1 },