diff options
| author | Martin Winter <mwinter@opensourcerouting.org> | 2018-05-16 08:36:21 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-16 08:36:21 -0700 |
| commit | c7e35331e3f73d2c7620427f928aa85aa80978ab (patch) | |
| tree | 27c9f5d867bba7fa7da828a3490bd47e5e369ae9 | |
| parent | 5d5f37c40065eaf9c949582674c1728b93b57bab (diff) | |
| parent | 430892165e3a0ebc054f83222b6671e4169a1ab1 (diff) | |
Merge pull request #2240 from donaldsharp/ubuntu_bull
Ubuntu 18.04 fixes
| -rw-r--r-- | bgpd/bgp_route.c | 2 | ||||
| -rw-r--r-- | pbrd/pbr_nht.c | 14 | ||||
| -rw-r--r-- | pbrd/pbr_nht.h | 4 | ||||
| -rw-r--r-- | pbrd/pbr_vty.c | 4 |
4 files changed, 7 insertions, 17 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index c0683b84ac..7bfeee9669 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -6509,7 +6509,7 @@ void route_vty_out(struct vty *vty, struct prefix *p, struct bgp_info *binfo, ? true : false; bool nexthop_othervrf = false; - vrf_id_t nexthop_vrfid; + vrf_id_t nexthop_vrfid = VRF_DEFAULT; const char *nexthop_vrfname = "Default"; if (json_paths) diff --git a/pbrd/pbr_nht.c b/pbrd/pbr_nht.c index 5be96e86d0..a4a9233f72 100644 --- a/pbrd/pbr_nht.c +++ b/pbrd/pbr_nht.c @@ -470,18 +470,6 @@ void pbr_nht_change_group(const char *name) pbr_nht_install_nexthop_group(pnhgc, nhgc->nhg); } -/* - * Since we are writing into the name field which is PBR_MAP_NAMELEN - * size, we are expecting this to field to be at max 100 bytes. - * Newer compilers understand that the %s portion may be up to - * 100 bytes( because of the size of the string. The %u portion - * is expected to be 10 bytes. So in `theory` there are situations - * where we might truncate. The reality this is never going to - * happen( who is going to create a nexthop group name that is - * over say 30 characters? ). As such we are expecting the - * calling function to subtract 10 from the size_t l before - * we pass it in to get around this new gcc fun. - */ char *pbr_nht_nexthop_make_name(char *name, size_t l, uint32_t seqno, char *buffer) { @@ -497,7 +485,7 @@ void pbr_nht_add_individual_nexthop(struct pbr_map_sequence *pbrms) struct pbr_nexthop_cache lookup; memset(&find, 0, sizeof(find)); - pbr_nht_nexthop_make_name(pbrms->parent->name, PBR_MAP_NAMELEN - 10, + pbr_nht_nexthop_make_name(pbrms->parent->name, PBR_NHC_NAMELEN, pbrms->seqno, find.name); if (!pbrms->internal_nhg_name) pbrms->internal_nhg_name = XSTRDUP(MTYPE_TMP, find.name); diff --git a/pbrd/pbr_nht.h b/pbrd/pbr_nht.h index 2cfb076f00..e6fdbfd04c 100644 --- a/pbrd/pbr_nht.h +++ b/pbrd/pbr_nht.h @@ -25,8 +25,10 @@ #include "pbr_map.h" +#define PBR_NHC_NAMELEN PBR_MAP_NAMELEN + 10 + struct pbr_nexthop_group_cache { - char name[PBR_MAP_NAMELEN]; + char name[PBR_NHC_NAMELEN]; uint32_t table_id; diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c index b7d2b1a928..7e0e8d632b 100644 --- a/pbrd/pbr_vty.c +++ b/pbrd/pbr_vty.c @@ -269,7 +269,7 @@ DEFPY(pbr_map_nexthop, pbr_map_nexthop_cmd, if (pbrms->nhg) nh = nexthop_exists(pbrms->nhg, &nhop); else { - char buf[PBR_MAP_NAMELEN]; + char buf[PBR_NHC_NAMELEN]; if (no) { vty_out(vty, "No nexthops to delete"); @@ -280,7 +280,7 @@ DEFPY(pbr_map_nexthop, pbr_map_nexthop_cmd, pbrms->internal_nhg_name = XSTRDUP(MTYPE_TMP, pbr_nht_nexthop_make_name(pbrms->parent->name, - PBR_MAP_NAMELEN - 10, + PBR_NHC_NAMELEN, pbrms->seqno, buf)); nh = NULL; |
