Test-Label: intel-Testing Test-Status: SUCCESS _Testing PASS_ DPDK git repo: dpdk commit eaa11767069f476e13000fc3fec618a40c46ab7e Author: Robin Jarry Date: Fri Oct 31 23:13:04 2025 +0100 graph: fix updating edge with active graph After creating at least one graph and calling rte_node_edge_update to add a new edge on a node which is in use in the graph, the node memory is reallocated but the active graph still has a pointer to the freed memory. When destroying the graph, it causes a use-after-free error detected by libasan: ERROR: AddressSanitizer: heap-use-after-free READ of size 8 at 0x7c4baa5e4da8 thread T0 #0 0x0000005ad224 in graph_node_fini lib/graph/graph.c:256 #1 0x0000005ae657 in rte_graph_destroy lib/graph/graph.c:504 ... freed by thread T0 here: #0 0x7f1bac4e5e4b in realloc.part.0 (/lib64/libasan.so.8+0xe5e4b) #1 0x0000005ab6d7 in edge_update lib/graph/node.c:271 #2 0x0000005abb1b in rte_node_edge_update lib/graph/node.c:339 ... previously allocated by thread T0 here: #0 0x7f1bac4e5e4b in realloc.part.0 (/lib64/libasan.so.8+0xe5e4b) #1 0x0000005ab6d7 in edge_update lib/graph/node.c:271 #2 0x0000005abb1b in rte_node_edge_update lib/graph/node.c:339 ... Use malloc+memcpy and add an internal function to replace all references to the old node memory before freeing it. Fixes: c59dac2ca14a ("graph: implement node operations") Cc: stable@dpdk.org Signed-off-by: Robin Jarry Acked-by: Jerin Jacob Testing Summary : 18 Case Done, 18 Successful, 0 Failures TestPlan: pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst virtio_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/virtio_smoke_test_plan.rst TestSuite: pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py OS : Ubuntu 24.04.3 LTS Kernel : 6.8.0-71-generic GCC : 13.3.0-6ubuntu2~24.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | n/a | | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ OS : Ubuntu 24.04.3 LTS Kernel : 6.8.0-87-generic GCC : 13.3.0-6ubuntu2~24.04 NIC : Ethernet Controller E810-C for SFP Target : x86_64-native-linuxapp-gcc Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ DPDK STV team