The garp_rarp node attempted to get ecmp_nexthop table through
the txn pointer which might be null. This didn't cause any crash
as the pointer was never dereferenced. Remove the table lookup
completely as the table wasn't used for anything within the node.

lib/ovsdb-idl.c:4184:17: runtime error: member access within null pointer of 
type 'struct ovsdb_idl_txn'
    ovsdb_idl_txn_get_idl /workspace/ovn/ovs/lib/ovsdb-idl.c:4184:17
    en_garp_rarp_run /workspace/ovn/controller/ovn-controller.c:5604:38
    engine_recompute /workspace/ovn/lib/inc-proc-eng.c:444:33
    engine_compute /workspace/ovn/lib/inc-proc-eng.c:487:17
    engine_run_node /workspace/ovn/lib/inc-proc-eng.c:546:14
    engine_run /workspace/ovn/lib/inc-proc-eng.c:575:9
    main /workspace/ovn/controller/ovn-controller.c:7507:21

Fixes: 05527bd6ccdb ("controller: Extract garp_rarp to engine node.")
Signed-off-by: Ales Musil <[email protected]>
---
 controller/ovn-controller.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
index ae76c8b22..9f8444c10 100644
--- a/controller/ovn-controller.c
+++ b/controller/ovn-controller.c
@@ -5598,21 +5598,15 @@ en_garp_rarp_run(struct engine_node *node, void *data_)
                 engine_get_input("SB_mac_binding", node),
                 "lport_ip");
 
-    struct ovsdb_idl_txn *ovnsb_idl_txn = engine_get_context()->ovnsb_idl_txn;
-
-    const struct sbrec_ecmp_nexthop_table *ecmp_nh_table =
-        sbrec_ecmp_nexthop_table_get(ovsdb_idl_txn_get_idl(ovnsb_idl_txn));
-
     struct ed_type_runtime_data *rt_data =
         engine_get_input_data("runtime_data", node);
 
     struct garp_rarp_ctx_in r_ctx_in = {
-        .ovnsb_idl_txn = ovnsb_idl_txn,
+        .ovnsb_idl_txn = engine_get_context()->ovnsb_idl_txn,
         .cfg = cfg,
         .sbrec_port_binding_by_datapath = sbrec_port_binding_by_datapath,
         .sbrec_port_binding_by_name = sbrec_port_binding_by_name,
         .sbrec_mac_binding_by_lport_ip = sbrec_mac_binding_by_lport_ip,
-        .ecmp_nh_table = ecmp_nh_table,
         .chassis = chassis,
         .active_tunnels = &rt_data->active_tunnels,
         .local_datapaths = &rt_data->local_datapaths,
-- 
2.51.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to