diff options
| author | Jonas Gorski | 2026-02-06 20:16:49 +0000 |
|---|---|---|
| committer | Jonas Gorski | 2026-02-07 12:37:55 +0000 |
| commit | a52cdb354d13c179150d2ba26f9f8a51d418b43d (patch) | |
| tree | 0d8ea74479036bb32c9143b217585dacf86bbb25 | |
| parent | b798c24205b5572cd8f2b79f3ef5857bb5de3180 (diff) | |
| download | mdnsd-master.tar.gz | |
Ensure the IPv4 PTR address contains exactly four numbers, and no excess
characters.
This avoids leaving ip1 potentially uninitialized for shorter prefixes.
Fixes: 2b28094 ("dns: add support for reverse address mapping queries")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
| -rw-r--r-- | dns.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -475,9 +475,13 @@ match_ipv6_addresses(char *reverse_ip, struct in6_addr *intf_ip) static int match_ip_addresses(char *reverse_ip, char *intf_ip) { - int ip1[4], ip2[4]; + int ip1[4], ip2[4], res; + char c; + + res = sscanf(reverse_ip, "%d.%d.%d.%d%c", &ip1[3], &ip1[2], &ip1[1], &ip1[0], &c); + if (res != 4) + return 0; - sscanf(reverse_ip, "%d.%d.%d.%d", &ip1[3], &ip1[2], &ip1[1], &ip1[0]); sscanf(intf_ip, "%d.%d.%d.%d", &ip2[0], &ip2[1], &ip2[2], &ip2[3]); int i; |