]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Fixed sscanf() error handling.
authorTimo Sirainen <tss@iki.fi>
Sun, 24 Nov 2013 19:41:06 +0000 (21:41 +0200)
committerTimo Sirainen <tss@iki.fi>
Sun, 24 Nov 2013 19:41:06 +0000 (21:41 +0200)
Patch by Jann Horn.

src/lib-dns/dns-lookup.c
src/lib-settings/settings.c

index 70d2b163247710507d57de5991ebf70cd1a664bf..6039de0950020cdbb777b8e20eaa289eb45428c5 100644 (file)
@@ -102,7 +102,7 @@ static int dns_lookup_input_line(struct dns_lookup *lookup, const char *line)
                }
                /* first line: <ret> <ip count> */
                if (sscanf(line, "%d %u", &result->ret,
-                          &result->ips_count) == 0)
+                          &result->ips_count) != 2)
                        return -1;
                if (result->ret != 0) {
                        result->error = net_gethosterror(result->ret);
index 59b4a97f2f88da2f771f9870e32dc7da35784111..16c81e720e8d4823de7b89630f4be8ceef84e088 100644 (file)
@@ -44,7 +44,7 @@ static const char *get_uint(const char *value, unsigned int *result)
 {
        int num;
 
-       if (!sscanf(value, "%i", &num) || num < 0)
+       if (sscanf(value, "%i", &num) != 1 || num < 0)
                return t_strconcat("Invalid number: ", value, NULL);
        *result = num;
        return NULL;