mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-21 17:51:17 +00:00
Merge pull request #2434 from pacovn/Coverity_1457145_Out-of-bounds_access
lib: out-of-bounds access (Coverity 1457145)
This commit is contained in:
commit
fbd3d404ae
22
lib/plist.c
22
lib/plist.c
@ -477,7 +477,7 @@ static void prefix_list_trie_del(struct prefix_list *plist,
|
|||||||
struct prefix_list_entry *pentry)
|
struct prefix_list_entry *pentry)
|
||||||
{
|
{
|
||||||
size_t depth, maxdepth = plist->master->trie_depth;
|
size_t depth, maxdepth = plist->master->trie_depth;
|
||||||
uint8_t *bytes = &pentry->prefix.u.prefix;
|
uint8_t *bytes = pentry->prefix.u.val;
|
||||||
size_t validbits = pentry->prefix.prefixlen;
|
size_t validbits = pentry->prefix.prefixlen;
|
||||||
struct pltrie_table *table, **tables[PLC_MAXLEVEL];
|
struct pltrie_table *table, **tables[PLC_MAXLEVEL];
|
||||||
|
|
||||||
@ -565,7 +565,7 @@ static void prefix_list_trie_add(struct prefix_list *plist,
|
|||||||
struct prefix_list_entry *pentry)
|
struct prefix_list_entry *pentry)
|
||||||
{
|
{
|
||||||
size_t depth = plist->master->trie_depth;
|
size_t depth = plist->master->trie_depth;
|
||||||
uint8_t *bytes = &pentry->prefix.u.prefix;
|
uint8_t *bytes = pentry->prefix.u.val;
|
||||||
size_t validbits = pentry->prefix.prefixlen;
|
size_t validbits = pentry->prefix.prefixlen;
|
||||||
struct pltrie_table *table;
|
struct pltrie_table *table;
|
||||||
|
|
||||||
@ -690,7 +690,7 @@ enum prefix_list_type prefix_list_apply_which_prefix(struct prefix_list *plist,
|
|||||||
struct prefix_list_entry *pentry, *pbest = NULL;
|
struct prefix_list_entry *pentry, *pbest = NULL;
|
||||||
|
|
||||||
struct prefix *p = (struct prefix *)object;
|
struct prefix *p = (struct prefix *)object;
|
||||||
uint8_t *byte = &p->u.prefix;
|
uint8_t *byte = p->u.val;
|
||||||
size_t depth;
|
size_t depth;
|
||||||
size_t validbits = p->prefixlen;
|
size_t validbits = p->prefixlen;
|
||||||
struct pltrie_table *table;
|
struct pltrie_table *table;
|
||||||
@ -774,7 +774,7 @@ static void __attribute__((unused)) prefix_list_print(struct prefix_list *plist)
|
|||||||
|
|
||||||
printf(" seq %" PRId64 " %s %s/%d", pentry->seq,
|
printf(" seq %" PRId64 " %s %s/%d", pentry->seq,
|
||||||
prefix_list_type_str(pentry),
|
prefix_list_type_str(pentry),
|
||||||
inet_ntop(p->family, &p->u.prefix, buf, BUFSIZ),
|
inet_ntop(p->family, p->u.val, buf, BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
if (pentry->ge)
|
if (pentry->ge)
|
||||||
printf(" ge %d", pentry->ge);
|
printf(" ge %d", pentry->ge);
|
||||||
@ -790,7 +790,7 @@ static struct prefix_list_entry *
|
|||||||
prefix_entry_dup_check(struct prefix_list *plist, struct prefix_list_entry *new)
|
prefix_entry_dup_check(struct prefix_list *plist, struct prefix_list_entry *new)
|
||||||
{
|
{
|
||||||
size_t depth, maxdepth = plist->master->trie_depth;
|
size_t depth, maxdepth = plist->master->trie_depth;
|
||||||
uint8_t byte, *bytes = &new->prefix.u.prefix;
|
uint8_t byte, *bytes = new->prefix.u.val;
|
||||||
size_t validbits = new->prefix.prefixlen;
|
size_t validbits = new->prefix.prefixlen;
|
||||||
struct pltrie_table *table;
|
struct pltrie_table *table;
|
||||||
struct prefix_list_entry *pentry;
|
struct prefix_list_entry *pentry;
|
||||||
@ -1140,7 +1140,7 @@ static void vty_show_prefix_entry(struct vty *vty, afi_t afi,
|
|||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
||||||
vty_out(vty, "%s/%d",
|
vty_out(vty, "%s/%d",
|
||||||
inet_ntop(p->family, &p->u.prefix, buf,
|
inet_ntop(p->family, p->u.val, buf,
|
||||||
BUFSIZ),
|
BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
|
|
||||||
@ -1247,7 +1247,7 @@ static int vty_show_prefix_list_prefix(struct vty *vty, afi_t afi,
|
|||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
||||||
vty_out(vty, "%s/%d",
|
vty_out(vty, "%s/%d",
|
||||||
inet_ntop(p->family, &p->u.prefix, buf,
|
inet_ntop(p->family, p->u.val, buf,
|
||||||
BUFSIZ),
|
BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
|
|
||||||
@ -1756,7 +1756,7 @@ static int config_write_prefix_afi(afi_t afi, struct vty *vty)
|
|||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
||||||
vty_out(vty, "%s/%d",
|
vty_out(vty, "%s/%d",
|
||||||
inet_ntop(p->family, &p->u.prefix, buf,
|
inet_ntop(p->family, p->u.val, buf,
|
||||||
BUFSIZ),
|
BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
|
|
||||||
@ -1795,7 +1795,7 @@ static int config_write_prefix_afi(afi_t afi, struct vty *vty)
|
|||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
||||||
vty_out(vty, " %s/%d",
|
vty_out(vty, " %s/%d",
|
||||||
inet_ntop(p->family, &p->u.prefix, buf,
|
inet_ntop(p->family, p->u.val, buf,
|
||||||
BUFSIZ),
|
BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
|
|
||||||
@ -1925,7 +1925,7 @@ int prefix_bgp_show_prefix_list(struct vty *vty, afi_t afi, char *name,
|
|||||||
char buf_b[BUFSIZ];
|
char buf_b[BUFSIZ];
|
||||||
|
|
||||||
sprintf(buf_a, "%s/%d",
|
sprintf(buf_a, "%s/%d",
|
||||||
inet_ntop(p->family, &p->u.prefix, buf_b,
|
inet_ntop(p->family, p->u.val, buf_b,
|
||||||
BUFSIZ),
|
BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
|
|
||||||
@ -1963,7 +1963,7 @@ int prefix_bgp_show_prefix_list(struct vty *vty, afi_t afi, char *name,
|
|||||||
vty_out(vty, " seq %" PRId64 " %s %s/%d",
|
vty_out(vty, " seq %" PRId64 " %s %s/%d",
|
||||||
pentry->seq,
|
pentry->seq,
|
||||||
prefix_list_type_str(pentry),
|
prefix_list_type_str(pentry),
|
||||||
inet_ntop(p->family, &p->u.prefix, buf, BUFSIZ),
|
inet_ntop(p->family, p->u.val, buf, BUFSIZ),
|
||||||
p->prefixlen);
|
p->prefixlen);
|
||||||
|
|
||||||
if (pentry->ge)
|
if (pentry->ge)
|
||||||
|
Loading…
Reference in New Issue
Block a user