diff --git a/zebra/zebra_srte.c b/zebra/zebra_srte.c index 7d95607fcf..746158c4b3 100644 --- a/zebra/zebra_srte.c +++ b/zebra/zebra_srte.c @@ -387,13 +387,13 @@ int zebra_sr_policy_label_update(mpls_label_t label, static int zebra_srte_client_close_cleanup(struct zserv *client) { int sock = client->sock; - struct zebra_sr_policy *policy; + struct zebra_sr_policy *policy, *policy_temp; if (!sock) return 0; - RB_FOREACH (policy, zebra_sr_policy_instance_head, - &zebra_sr_policy_instances) { + RB_FOREACH_SAFE (policy, zebra_sr_policy_instance_head, + &zebra_sr_policy_instances, policy_temp) { if (policy->sock == sock) zebra_sr_policy_del(policy); }