[ovs-git] [ovn-org/ovn] a0604c: pinctrl: Fix segfault seen when creating mac_bindi...
numansiddique
noreply at github.com
Thu Nov 26 10:29:56 UTC 2020
Branch: refs/heads/branch-20.09
Home: https://github.com/ovn-org/ovn
Commit: a0604c17b1da2e0241f2f44971135da4f67fa204
https://github.com/ovn-org/ovn/commit/a0604c17b1da2e0241f2f44971135da4f67fa204
Author: Numan Siddique <numans at ovn.org>
Date: 2020-11-26 (Thu, 26 Nov 2020)
Changed paths:
M controller/pinctrl.c
Log Message:
-----------
pinctrl: Fix segfault seen when creating mac_binding for local GARPs.
Segfault is seen with the below trace. This patch fixes the issue by
checking 'ovnsb_idl_txn' is not NULL before continuing in the function
send_garp_locally().
#0 ovsdb_idl_txn_insert (txn=0x0, class=0x64b170 <sbrec_table_classes+816>, uuid=0x0) at ../lib/ovsdb-idl.c:3504
#1 0x000000000041b068 in mac_binding_add (ovnsb_idl_txn=ovnsb_idl_txn at entry=0x0,
sbrec_mac_binding_by_lport_ip=sbrec_mac_binding_by_lport_ip at entry=0xf6a7e0, logical_port=0xfd0d70 "lr0-pub", dp=0xfd0f20,
ea=..., ip=0xf67be0 "172.24.4.221") at ../controller/pinctrl.c:3877
#2 0x000000000041b18b in send_garp_locally (ovnsb_idl_txn=ovnsb_idl_txn at entry=0x0,
sbrec_mac_binding_by_lport_ip=sbrec_mac_binding_by_lport_ip at entry=0xf6a7e0, local_datapaths=local_datapaths at entry=0xf766f0,
in_pb=in_pb at entry=0xfd3370, ea=..., ip=3708033196) at ../controller/pinctrl.c:3913
#3 0x000000000041d1be in send_garp_rarp_update (ovnsb_idl_txn=ovnsb_idl_txn at entry=0x0,
sbrec_mac_binding_by_lport_ip=sbrec_mac_binding_by_lport_ip at entry=0xf6a7e0, local_datapaths=local_datapaths at entry=0xf766f0,
binding_rec=0xfd3370, nat_addresses=nat_addresses at entry=0x7ffdb9295b80) at ../controller/pinctrl.c:4118
#4 0x0000000000425c88 in send_garp_rarp_prepare (active_tunnels=0xf76770, local_datapaths=0xf766f0, chassis=0xfdb4e0,
br_int=<optimized out>, sbrec_mac_binding_by_lport_ip=0xf6a7e0, sbrec_port_binding_by_name=0xf6a090,
sbrec_port_binding_by_datapath=<optimized out>, ovnsb_idl_txn=0x0) at ../controller/pinctrl.c:5491
#5 pinctrl_run (ovnsb_idl_txn=0x0, sbrec_datapath_binding_by_key=<optimized out>,
sbrec_port_binding_by_datapath=<optimized out>, sbrec_port_binding_by_key=<optimized out>,
sbrec_port_binding_by_name=0xf6a090, sbrec_mac_binding_by_lport_ip=0xf6a7e0, sbrec_igmp_groups=0xf6ab90,
sbrec_ip_multicast_opts=0xf6a9c0, dns_table=0xf33960, ce_table=0xf33960, svc_mon_table=0xf33960, br_int=0xf67d50,
chassis=0xfdb4e0, local_datapaths=0xf766f0, active_tunnels=0xf76770) at ../controller/pinctrl.c:3169
#6 0x0000000000408e91 in main (argc=<optimized out>, argv=<optimized out>) at ../controller/ovn-controller.c:2789
Fixes: a2b88dc51365("pinctrl: Directly update MAC_Bindings created by self originated GARPs.")
Signed-off-by: Numan Siddique <numans at ovn.org>
Acked-by: Dumitru Ceara <dceara at redhat.com>
(cherry-picked from master commit 2e28b8e5db89aa876ce5b7666df6f63be1eef4c9)
More information about the git
mailing list