> The route_table_parse() can allocate data related to the nexthop
> list. Those data need to be freed when we are done with the message.
> Make sure we call route_data_destroy() when we are done with the
> change.
> 
> Fixes: 673d90f1173f ("controller: Watch for route changes.")
> Signed-off-by: Ales Musil <[email protected]>

Acked-by: Lorenzo Bianconi <[email protected]>

> ---
>  controller/route-table-notify.c | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/controller/route-table-notify.c b/controller/route-table-notify.c
> index 1fa182ea5..9fa2e0ea6 100644
> --- a/controller/route-table-notify.c
> +++ b/controller/route-table-notify.c
> @@ -134,19 +134,22 @@ find_watch_entry(uint32_t table_id)
>  static void
>  route_table_change(const void *change_, void *aux OVS_UNUSED)
>  {
> -    /* We currently track whether at least one recent route table change
> -     * was detected.  If that's the case already there's no need to
> -     * continue. */
> -    if (any_route_table_changed) {
> +    if (!change_) {
>          return;
>      }
>  
> -    const struct route_table_msg *change = change_;
> -    if (change && change->rd.rtm_protocol != RTPROT_OVN) {
> +    /* We currently track whether at least one recent route table change
> +     * was detected.  If that's the case already there's no need to
> +     * continue. */
> +    struct route_table_msg *change =
> +        CONST_CAST(struct route_table_msg *, change_);
> +    if (!any_route_table_changed && change->rd.rtm_protocol != RTPROT_OVN) {
>          if (find_watch_entry(change->rd.rta_table_id)) {
>              any_route_table_changed = true;
>          }
>      }
> +
> +    route_data_destroy(&change->rd);
>  }
>  
>  static void
> -- 
> 2.53.0
> 
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to