Acked-by: Donald Sharp <sha...@cumulusnetworks.com>

On Tue, Jun 14, 2016 at 2:07 PM, Christian Franke <
ch...@opensourcerouting.org> wrote:

> From: Christian Franke <nob...@nowhere.ws>
>
> Given that the && is evaluated lazily from left to right,
> i < OSPF6_MULTI_PATH_LIMIT should be checked prior to calling
> ospf6_nexthop_is_set on the array element, not the other way around.
>
> Signed-off-by: Christian Franke <ch...@opensourcerouting.org>
> ---
>  ospf6d/ospf6_intra.c |  4 ++--
>  ospf6d/ospf6_route.c |  8 ++++----
>  ospf6d/ospf6_spf.c   | 12 ++++++------
>  3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c
> index 6606c96..f003a80 100644
> --- a/ospf6d/ospf6_intra.c
> +++ b/ospf6d/ospf6_intra.c
> @@ -1314,8 +1314,8 @@ ospf6_intra_prefix_lsa_add (struct ospf6_lsa *lsa)
>          }
>        else
>          {
> -          for (i = 0; ospf6_nexthop_is_set (&ls_entry->nexthop[i]) &&
> -               i < OSPF6_MULTI_PATH_LIMIT; i++)
> +          for (i = 0; i < OSPF6_MULTI_PATH_LIMIT &&
> +               ospf6_nexthop_is_set (&ls_entry->nexthop[i]); i++)
>              ospf6_nexthop_copy (&route->nexthop[i],
> &ls_entry->nexthop[i]);
>          }
>
> diff --git a/ospf6d/ospf6_route.c b/ospf6d/ospf6_route.c
> index 5057556..07a4e09 100644
> --- a/ospf6d/ospf6_route.c
> +++ b/ospf6d/ospf6_route.c
> @@ -821,8 +821,8 @@ ospf6_route_show (struct vty *vty, struct ospf6_route
> *route)
>             OSPF6_PATH_TYPE_SUBSTR (route->path.type),
>             destination, nexthop, IFNAMSIZ, ifname, duration, VNL);
>
> -  for (i = 1; ospf6_nexthop_is_set (&route->nexthop[i]) &&
> -       i < OSPF6_MULTI_PATH_LIMIT; i++)
> +  for (i = 1; i < OSPF6_MULTI_PATH_LIMIT &&
> +       ospf6_nexthop_is_set (&route->nexthop[i]); i++)
>      {
>        /* nexthop */
>        inet_ntop (AF_INET6, &route->nexthop[i].address, nexthop,
> @@ -918,8 +918,8 @@ ospf6_route_show_detail (struct vty *vty, struct
> ospf6_route *route)
>
>    /* Nexthops */
>    vty_out (vty, "Nexthop:%s", VNL);
> -  for (i = 0; ospf6_nexthop_is_set (&route->nexthop[i]) &&
> -       i < OSPF6_MULTI_PATH_LIMIT; i++)
> +  for (i = 0; i < OSPF6_MULTI_PATH_LIMIT &&
> +       ospf6_nexthop_is_set (&route->nexthop[i]); i++)
>      {
>        /* nexthop */
>        inet_ntop (AF_INET6, &route->nexthop[i].address, nexthop,
> diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c
> index 858398e..6d2e536 100644
> --- a/ospf6d/ospf6_spf.c
> +++ b/ospf6d/ospf6_spf.c
> @@ -307,8 +307,8 @@ ospf6_spf_install (struct ospf6_vertex *v,
>        if (IS_OSPF6_DEBUG_SPF (PROCESS))
>          zlog_debug ("  another path found, merge");
>
> -      for (i = 0; ospf6_nexthop_is_set (&v->nexthop[i]) &&
> -           i < OSPF6_MULTI_PATH_LIMIT; i++)
> +      for (i = 0; i < OSPF6_MULTI_PATH_LIMIT &&
> +           ospf6_nexthop_is_set (&v->nexthop[i]); i++)
>          {
>            for (j = 0; j < OSPF6_MULTI_PATH_LIMIT; j++)
>              {
> @@ -356,8 +356,8 @@ ospf6_spf_install (struct ospf6_vertex *v,
>    route->path.options[1] = v->options[1];
>    route->path.options[2] = v->options[2];
>
> -  for (i = 0; ospf6_nexthop_is_set (&v->nexthop[i]) &&
> -       i < OSPF6_MULTI_PATH_LIMIT; i++)
> +  for (i = 0; i < OSPF6_MULTI_PATH_LIMIT &&
> +       ospf6_nexthop_is_set (&v->nexthop[i]); i++)
>      ospf6_nexthop_copy (&route->nexthop[i], &v->nexthop[i]);
>
>    if (v->parent)
> @@ -499,8 +499,8 @@ ospf6_spf_calculation (u_int32_t router_id,
>              ospf6_nexthop_calc (w, v, lsdesc);
>            else
>              {
> -              for (i = 0; ospf6_nexthop_is_set (&v->nexthop[i]) &&
> -                   i < OSPF6_MULTI_PATH_LIMIT; i++)
> +              for (i = 0; i < OSPF6_MULTI_PATH_LIMIT &&
> +                   ospf6_nexthop_is_set (&v->nexthop[i]); i++)
>                  ospf6_nexthop_copy (&w->nexthop[i], &v->nexthop[i]);
>              }
>
> --
> 2.8.0
>
>
> _______________________________________________
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>
_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to