mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Fix undefined behavior in geoip_parse_entry().
Fixes bug 22490; bugfix on 6a241ff3ff
in 0.2.4.6-alpha.
Found by teor using clang-5.0's AddressSanitizer stack-use-after-scope.
This commit is contained in:
parent
5207e41ffe
commit
e3ebae4804
2 changed files with 4 additions and 1 deletions
3
changes/bug22490
Normal file
3
changes/bug22490
Normal file
|
@ -0,0 +1,3 @@
|
|||
o Minor bugfixes (correctness):
|
||||
- Avoid undefined behavior when parsing IPv6 entries from the geoip6
|
||||
file. Fixes bug 22490; bugfix on 0.2.4.6-alpha.
|
|
@ -145,6 +145,7 @@ geoip_parse_entry(const char *line, sa_family_t family)
|
|||
if (*line == '#')
|
||||
return 0;
|
||||
|
||||
char buf[512];
|
||||
if (family == AF_INET) {
|
||||
unsigned int low, high;
|
||||
if (tor_sscanf(line,"%u,%u,%2s", &low, &high, c) == 3 ||
|
||||
|
@ -155,7 +156,6 @@ geoip_parse_entry(const char *line, sa_family_t family)
|
|||
goto fail;
|
||||
country = c;
|
||||
} else { /* AF_INET6 */
|
||||
char buf[512];
|
||||
char *low_str, *high_str;
|
||||
struct in6_addr low, high;
|
||||
char *strtok_state;
|
||||
|
|
Loading…
Add table
Reference in a new issue