Commit b9539e78 authored by Ondrej Zajicek's avatar Ondrej Zajicek
Browse files

Fixes bug in BGPv6 causing crash by checking missing attributes.

parent e366625c
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -1359,9 +1359,12 @@ bgp_decode_attrs(struct bgp_conn *conn, byte *attr, unsigned int len, struct lin
    mandatory = 1;
#endif


  /* If there is no (reachability) NLRI, we should exit now */
  if (! mandatory)
    return a;

  /* Check if all mandatory attributes are present */
  if (mandatory)
    {
  for(i=0; i < ARRAY_SIZE(bgp_mandatory_attrs); i++)
    {
      code = bgp_mandatory_attrs[i];
@@ -1371,7 +1374,6 @@ bgp_decode_attrs(struct bgp_conn *conn, byte *attr, unsigned int len, struct lin
	  return NULL;
	}
    }
    }
  
  /* When receiving attributes from non-AS4-aware BGP speaker,
   * we have to reconstruct 4B AS_PATH and AGGREGATOR attributes