Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0.0
-
None
-
None
Description
If qdr_map_destination_CT is called for an address that has not been defined on a router that has the default distribution set to 'undefined', qdr_address_CT (line 578 at present) returns null. However there is no check for this and the address is used to get a hash_handle which causes a segfault.
Under valgrind you see:
==10232== Invalid write of size 8 ==10232== at 0x4E67501: qd_hash_internal_insert (hash.c:156) ==10232== by 0x4E6756B: qd_hash_insert (hash.c:168) ==10232== by 0x4E91644: qdr_map_destination_CT (route_tables.c:579) ==10232== by 0x4E8F80D: router_core_thread (router_core_thread.c:83) ==10232== by 0x550F739: start_thread (in /usr/lib64/libpthread-2.24.so) ==10232== by 0x607AE7E: clone (in /usr/lib64/libc-2.24.so) ==10232== Address 0x98 is not stack'd, malloc'd or (recently) free'd