From f1885109b1c3fde433b10a284485db6e37161af5 Mon Sep 17 00:00:00 2001 From: Louis Scalbert Date: Wed, 7 Feb 2024 13:16:26 +0100 Subject: [PATCH] lib: fix affinity map duplicate Fix duplicate definition of frr_affinity_map_cli_info in libfrr.so.0 and libmgmt_be_nb.so.0 > ================================================================= > ==3860488==ERROR: AddressSanitizer: odr-violation (0x7f12c98c4d20): > [1] size=296 'frr_affinity_map_cli_info' lib/affinitymap_cli.c:77:35 > [2] size=296 'frr_affinity_map_cli_info' lib/affinitymap_cli.c:77:35 > These globals were registered at these points: > [1]: > #0 0x7f12c9a36f40 in __asan_register_globals ../../../../src/libsanitizer/asan/asan_globals.cpp:341 > #1 0x7f12c9585b7d in _sub_I_00099_1 (/lib/libfrr.so.0+0x185b7d) > #2 0x7f12ca437fe1 in call_init elf/dl-init.c:72 > > [2]: > #0 0x7f12c9a36f40 in __asan_register_globals ../../../../src/libsanitizer/asan/asan_globals.cpp:341 > #1 0x7f12c93824ed in _sub_I_00099_1 (/lib/libmgmt_be_nb.so.0+0x6f4ed) > #2 0x7f12ca437fe1 in call_init elf/dl-init.c:72 > > ==3860488==HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_odr_violation=0 > SUMMARY: AddressSanitizer: odr-violation: global 'frr_affinity_map_cli_info' at lib/affinitymap_cli.c:77:35 > ==3860488==ABORTING Fixes: dc6ff4c0de ("lib: convert affinity-map to mgmtd") Signed-off-by: Louis Scalbert --- lib/affinitymap_cli.c | 22 ---------------------- lib/affinitymap_northbound.c | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/affinitymap_cli.c b/lib/affinitymap_cli.c index 73b91e775b7f..c9ca50b74ad0 100644 --- a/lib/affinitymap_cli.c +++ b/lib/affinitymap_cli.c @@ -66,28 +66,6 @@ DEFPY_YANG_NOSH(no_affinity_map, no_affinity_map_cmd, return nb_cli_apply_changes(vty, NULL); } -static void cli_show_affinity_map(struct vty *vty, const struct lyd_node *dnode, - bool show_defaults __attribute__((__unused__))) -{ - vty_out(vty, "affinity-map %s bit-position %u\n", - yang_dnode_get_string(dnode, "name"), - yang_dnode_get_uint16(dnode, "value")); -} - -const struct frr_yang_module_info frr_affinity_map_cli_info = { - .name = "frr-affinity-map", - .ignore_cfg_cbs = true, - .nodes = { - { - .xpath = "/frr-affinity-map:lib/affinity-maps/affinity-map", - .cbs.cli_show = cli_show_affinity_map, - }, - { - .xpath = NULL, - }, - } -}; - /* Initialization of affinity map vector. */ void affinity_map_init(void) { diff --git a/lib/affinitymap_northbound.c b/lib/affinitymap_northbound.c index 8e84d36f2fff..ded2a4e3db59 100644 --- a/lib/affinitymap_northbound.c +++ b/lib/affinitymap_northbound.c @@ -107,3 +107,25 @@ const struct frr_yang_module_info frr_affinity_map_info = { }, } }; + +static void cli_show_affinity_map(struct vty *vty, const struct lyd_node *dnode, + bool show_defaults __attribute__((__unused__))) +{ + vty_out(vty, "affinity-map %s bit-position %u\n", + yang_dnode_get_string(dnode, "name"), + yang_dnode_get_uint16(dnode, "value")); +} + +const struct frr_yang_module_info frr_affinity_map_cli_info = { + .name = "frr-affinity-map", + .ignore_cfg_cbs = true, + .nodes = { + { + .xpath = "/frr-affinity-map:lib/affinity-maps/affinity-map", + .cbs.cli_show = cli_show_affinity_map, + }, + { + .xpath = NULL, + }, + } +};