]> git.proxmox.com Git - mirror_frr.git/commit - lib/linklist.c
*: Convert list_delete(struct list *) to ** to allow nulling
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 5 Oct 2017 14:51:01 +0000 (10:51 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 5 Oct 2017 14:53:13 +0000 (10:53 -0400)
commitaffe9e99831408960b8b6f8477506ed2874a05dd
treea6f2f7a898fad5fcdc3f74b233095b6e8f6a2b46
parentad183f047cab21576a42a9da0c4ed94cd1391005
*: Convert list_delete(struct list *) to ** to allow nulling

Convert the list_delete(struct list *) function to use
struct list **.  This is to allow the list pointer to be nulled.

I keep running into uses of this list_delete function where we
forget to set the returned pointer to NULL and attempt to use
it and then experience a crash, usually after the developer
has long since left the building.

Let's make the api explicit in it setting the list pointer
to null.

Cynical Prediction:  This code will expose a attempt
to use the NULL'ed list pointer in some obscure bit
of code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
80 files changed:
bgpd/bgp_evpn.c
bgpd/bgp_main.c
bgpd/bgpd.c
bgpd/rfapi/bgp_rfapi_cfg.c
bgpd/rfapi/rfapi.c
bgpd/rfapi/rfapi_rib.c
bgpd/rfapi/rfapi_vty.c
bgpd/rfapi/vnc_import_bgp.c
bgpd/rfapi/vnc_zebra.c
eigrpd/eigrp_dump.c
eigrpd/eigrp_fsm.c
eigrpd/eigrp_interface.c
eigrpd/eigrp_topology.c
eigrpd/eigrp_update.c
eigrpd/eigrpd.c
isisd/isis_circuit.c
isisd/isis_dr.c
isisd/isis_events.c
isisd/isis_lsp.c
isisd/isis_mt.c
isisd/isis_pdu.c
isisd/isis_route.c
isisd/isis_spf.c
isisd/isis_tlvs.c
isisd/isisd.c
lib/command.c
lib/command_match.c
lib/grammar_sandbox.c
lib/hash.c
lib/if.c
lib/keychain.c
lib/linklist.c
lib/linklist.h
lib/thread.c
lib/wheel.c
ospf6d/ospf6_area.c
ospf6d/ospf6_interface.c
ospf6d/ospf6_route.c
ospf6d/ospf6_spf.c
ospf6d/ospf6_top.c
ospfd/ospf_apiserver.c
ospfd/ospf_ase.c
ospfd/ospf_interface.c
ospfd/ospf_ism.c
ospfd/ospf_lsa.c
ospfd/ospf_opaque.c
ospfd/ospf_packet.c
ospfd/ospf_ri.c
ospfd/ospf_route.c
ospfd/ospf_spf.c
ospfd/ospf_te.c
ospfd/ospfd.c
pimd/pim_hello.c
pimd/pim_iface.c
pimd/pim_ifchannel.c
pimd/pim_igmp.c
pimd/pim_instance.c
pimd/pim_jp_agg.c
pimd/pim_msdp.c
pimd/pim_neighbor.c
pimd/pim_nht.c
pimd/pim_oil.c
pimd/pim_rp.c
pimd/pim_ssmpingd.c
pimd/pim_tlv.c
pimd/pim_upstream.c
ripd/rip_offset.c
ripd/ripd.c
ripngd/ripng_nexthop.c
ripngd/ripng_offset.c
ripngd/ripngd.c
tests/isisd/test_fuzz_isis_tlv.c
vtysh/vtysh_config.c
zebra/interface.c
zebra/irdp_interface.c
zebra/label_manager.c
zebra/main.c
zebra/zebra_mpls.c
zebra/zebra_rib.c
zebra/zebra_vxlan.c