mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-06 05:34:38 +00:00
Merge pull request #2240 from donaldsharp/ubuntu_bull
Ubuntu 18.04 fixes
This commit is contained in:
commit
c7e35331e3
@ -6509,7 +6509,7 @@ void route_vty_out(struct vty *vty, struct prefix *p, struct bgp_info *binfo,
|
|||||||
? true
|
? true
|
||||||
: false;
|
: false;
|
||||||
bool nexthop_othervrf = false;
|
bool nexthop_othervrf = false;
|
||||||
vrf_id_t nexthop_vrfid;
|
vrf_id_t nexthop_vrfid = VRF_DEFAULT;
|
||||||
const char *nexthop_vrfname = "Default";
|
const char *nexthop_vrfname = "Default";
|
||||||
|
|
||||||
if (json_paths)
|
if (json_paths)
|
||||||
|
@ -470,18 +470,6 @@ void pbr_nht_change_group(const char *name)
|
|||||||
pbr_nht_install_nexthop_group(pnhgc, nhgc->nhg);
|
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,
|
char *pbr_nht_nexthop_make_name(char *name, size_t l,
|
||||||
uint32_t seqno, char *buffer)
|
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;
|
struct pbr_nexthop_cache lookup;
|
||||||
|
|
||||||
memset(&find, 0, sizeof(find));
|
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);
|
pbrms->seqno, find.name);
|
||||||
if (!pbrms->internal_nhg_name)
|
if (!pbrms->internal_nhg_name)
|
||||||
pbrms->internal_nhg_name = XSTRDUP(MTYPE_TMP, find.name);
|
pbrms->internal_nhg_name = XSTRDUP(MTYPE_TMP, find.name);
|
||||||
|
@ -25,8 +25,10 @@
|
|||||||
|
|
||||||
#include "pbr_map.h"
|
#include "pbr_map.h"
|
||||||
|
|
||||||
|
#define PBR_NHC_NAMELEN PBR_MAP_NAMELEN + 10
|
||||||
|
|
||||||
struct pbr_nexthop_group_cache {
|
struct pbr_nexthop_group_cache {
|
||||||
char name[PBR_MAP_NAMELEN];
|
char name[PBR_NHC_NAMELEN];
|
||||||
|
|
||||||
uint32_t table_id;
|
uint32_t table_id;
|
||||||
|
|
||||||
|
@ -269,7 +269,7 @@ DEFPY(pbr_map_nexthop, pbr_map_nexthop_cmd,
|
|||||||
if (pbrms->nhg)
|
if (pbrms->nhg)
|
||||||
nh = nexthop_exists(pbrms->nhg, &nhop);
|
nh = nexthop_exists(pbrms->nhg, &nhop);
|
||||||
else {
|
else {
|
||||||
char buf[PBR_MAP_NAMELEN];
|
char buf[PBR_NHC_NAMELEN];
|
||||||
|
|
||||||
if (no) {
|
if (no) {
|
||||||
vty_out(vty, "No nexthops to delete");
|
vty_out(vty, "No nexthops to delete");
|
||||||
@ -280,7 +280,7 @@ DEFPY(pbr_map_nexthop, pbr_map_nexthop_cmd,
|
|||||||
pbrms->internal_nhg_name =
|
pbrms->internal_nhg_name =
|
||||||
XSTRDUP(MTYPE_TMP,
|
XSTRDUP(MTYPE_TMP,
|
||||||
pbr_nht_nexthop_make_name(pbrms->parent->name,
|
pbr_nht_nexthop_make_name(pbrms->parent->name,
|
||||||
PBR_MAP_NAMELEN - 10,
|
PBR_NHC_NAMELEN,
|
||||||
pbrms->seqno,
|
pbrms->seqno,
|
||||||
buf));
|
buf));
|
||||||
nh = NULL;
|
nh = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user