2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 01:59:26 +00:00

Fix one-definition-rule violation in the loop unit test

Locally, clang reported following odr-violation:

    =================================================================
    ==1132009==ERROR: AddressSanitizer: odr-violation (0x555555589280):
      [1] size=8 'isc__loopmgr' ../lib/isc/loop.c:52:16 in /home/ondrej/Projects/bind9/build/tests/isc/loop
      [2] size=8 'isc__loopmgr' ../lib/isc/loop.c:52:16 in /home/ondrej/Projects/bind9/build/tests/isc/../../libisc.so
    These globals were registered at these points:
      [1]:
	#0 0x7ffff785306f in __asan_register_globals ../../../../src/libsanitizer/asan/asan_globals.cpp:350
	#1 0x55555556abce in _sub_I_00099_1 (/home/ondrej/Projects/bind9/build/tests/isc/loop+0x16bce) (BuildId: e7c586e966e6986532a3da40df41223ae16e55c9)
	#2 0x7ffff702a303 in call_init ../csu/libc-start.c:145
	#3 0x7ffff702a303 in __libc_start_main_impl ../csu/libc-start.c:347
	#4 0x5555555622e4 in _start (/home/ondrej/Projects/bind9/build/tests/isc/loop+0xe2e4) (BuildId: e7c586e966e6986532a3da40df41223ae16e55c9)

      [2]:
	#0 0x7ffff785306f in __asan_register_globals ../../../../src/libsanitizer/asan/asan_globals.cpp:350
	#1 0x7ffff75335b9 in _sub_I_00099_1 (/home/ondrej/Projects/bind9/build/tests/isc/../../libisc.so+0x1335b9) (BuildId: 33ab72bc676e9ef9111b3db1fc4347595069cd29)
	#2 0x7ffff7fca71e in call_init elf/dl-init.c:74
	#3 0x7ffff7fca823 in call_init elf/dl-init.c:120
	#4 0x7ffff7fca823 in _dl_init elf/dl-init.c:121
	#5 0x7ffff7fe459f  (/lib64/ld-linux-x86-64.so.2+0x1f59f) (BuildId: 281ac1521b4102509b1c7ac7004db7c1efb81796)

    ==1132009==HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_odr_violation=0
    SUMMARY: AddressSanitizer: odr-violation: global 'isc__loopmgr' at ../lib/isc/loop.c:52:16 in /home/ondrej/Projects/bind9/build/tests/isc/loop
    ==1132009==ABORTING
    Aborted (core dumped)

Rename isc__loopmgr when including the loop.c into loop_test.c to
prevent odr-violation over isc__loopmgr.
This commit is contained in:
Ondřej Surý 2025-07-24 11:43:14 +02:00
parent 2a3e0ca81d
commit 2092f8895f

View File

@ -33,6 +33,11 @@
#include <isc/result.h>
#include <isc/util.h>
/*
* Prevent the odr-violation by renaming isc__loopmgr when including loop.c for
* the second time.
*/
#define isc__loopmgr isc___loopmgr
#include "loop.c"
#include <tests/isc.h>