Avoid freeing an uninitialised pointer in get_interface_addresses_ioctl

This commit is contained in:
teor (Tim Wilson-Brown) 2016-03-04 18:41:49 +01:00
parent 9fc472e1a8
commit 2627299ef0
2 changed files with 9 additions and 1 deletions

8
changes/bug18454 Normal file
View File

@ -0,0 +1,8 @@
o Minor bugfixes (memory safety):
- Avoid freeing an uninitialised pointer when opening a socket fails
in get_interface_addresses_ioctl.
Fixes bug 18454; bugfix on 9f06ec0c in tor-0.2.3.11-alpha.
Reported by "toralf" and "cypherpunks", patch by "teor".
- Correctly duplicate addresses in get_interface_address6_list.
Fixes bug 18454; bugfix on 110765f5 in tor-0.2.8.1-alpha.
Reported by "toralf", patch by "cypherpunks".

View File

@ -1525,6 +1525,7 @@ get_interface_addresses_ioctl(int severity, sa_family_t family)
{
/* Some older unixy systems make us use ioctl(SIOCGIFCONF) */
struct ifconf ifc;
ifc.ifc_buf = NULL;
int fd;
smartlist_t *result = NULL;
@ -1547,7 +1548,6 @@ get_interface_addresses_ioctl(int severity, sa_family_t family)
}
int mult = 1;
ifc.ifc_buf = NULL;
do {
mult *= 2;
ifc.ifc_len = mult * IFREQ_SIZE;