ThreadSanitizer: data race in memset after #2433
!4659 (merged) introduced ThreadSanitizer warnings identified by GCC and Clang.
GCC:
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by main thread:
#0 free <null>
#1 default_memfree lib/isc/mem.c:440
#2 mem_put lib/isc/mem.c:363
#3 isc__mem_free lib/isc/mem.c:1012
#4 main bin/tools/mdig.c:2231
Previous read of size 1 at 0x000000000005 by thread T1:
#0 dns_name_fromtext lib/dns/name.c:1121
#1 sendquery bin/tools/mdig.c:596
#2 sendqueries bin/tools/mdig.c:779
#3 dispatch lib/isc/task.c:1152
#4 run lib/isc/task.c:1344
#5 <null> <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create pthreads/thread.c:73
#2 isc_taskmgr_create lib/isc/task.c:1434
#3 main bin/tools/mdig.c:2148
SUMMARY: ThreadSanitizer: data race in __interceptor_free
Clang:
WARNING: ThreadSanitizer: data race
Write of size 8 at 0x000000000001 by main thread:
#0 memset <null>
#1 memset /usr/include/x86_64-linux-gnu/bits/string_fortified.h:71:10
#2 mem_put lib/isc/mem.c:361:3
#3 isc__mem_free lib/isc/mem.c:1012:2
#4 main bin/tools/mdig.c:2231:3
Previous read of size 4 at 0x000000000001 by thread T1:
#0 sendquery bin/tools/mdig.c:764:10
#1 sendqueries bin/tools/mdig.c:779:3
#2 dispatch lib/isc/task.c:1152:7
#3 run lib/isc/task.c:1344:2
Location is heap block of size 1120 at 0x000000000010 allocated by main thread:
#0 malloc <null>
#1 default_memalloc lib/isc/mem.c:411:8
#2 mem_get lib/isc/mem.c:343:8
#3 mem_allocateunlocked lib/isc/mem.c:918:7
#4 isc__mem_allocate lib/isc/mem.c:935:7
#5 clone_default_query bin/tools/mdig.c:1831:10
#6 parse_args bin/tools/mdig.c:1959:11
#7 parse_args bin/tools/mdig.c:2049:4
#8 main bin/tools/mdig.c:2124:2
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:73:8
#2 isc_taskmgr_create lib/isc/task.c:1434:3
#3 main bin/tools/mdig.c:2148:2
SUMMARY: ThreadSanitizer: data race in memset