From d607205486d7ea11f2cbf3dcc3d5e7e6b53f1d0f Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Wed, 14 Aug 2019 10:28:23 +0200 Subject: Not calling memcpy with n=0. --- proto/bgp/bgp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'proto/bgp') diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h index dc63e13e..0529c45a 100644 --- a/proto/bgp/bgp.h +++ b/proto/bgp/bgp.h @@ -552,7 +552,7 @@ static inline void bgp_set_attr_data(ea_list **to, struct linpool *pool, uint code, uint flags, void *data, uint len) { struct adata *a = lp_alloc_adata(pool, len); - memcpy(a->data, data, len); + bmemcpy(a->data, data, len); bgp_set_attr(to, pool, code, flags, (uintptr_t) a); } -- cgit v1.2.3 From 258be56539a3d4b47fe779f9658ca3d88761878d Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Sat, 17 Aug 2019 13:36:36 +0200 Subject: Nest: Added const to ea_show just to declare that this shouldn't really change anything --- nest/protocol.h | 2 +- nest/route.h | 2 +- nest/rt-attr.c | 6 +++--- proto/babel/babel.c | 2 +- proto/bgp/attrs.c | 16 ++++++++-------- proto/bgp/bgp.h | 2 +- proto/ospf/ospf.c | 2 +- proto/radv/radv.c | 2 +- proto/rip/rip.c | 2 +- sysdep/bsd/krt-sys.h | 2 +- sysdep/linux/netlink.c | 2 +- sysdep/unix/krt.c | 2 +- sysdep/unix/krt.h | 2 +- 13 files changed, 22 insertions(+), 22 deletions(-) (limited to 'proto/bgp') diff --git a/nest/protocol.h b/nest/protocol.h index e97e59dd..a934c047 100644 --- a/nest/protocol.h +++ b/nest/protocol.h @@ -80,7 +80,7 @@ struct protocol { void (*cleanup)(struct proto *); /* Called after shutdown when protocol became hungry/down */ void (*get_status)(struct proto *, byte *buf); /* Get instance status (for `show protocols' command) */ void (*get_route_info)(struct rte *, byte *buf); /* Get route information (for `show route' command) */ - int (*get_attr)(struct eattr *, byte *buf, int buflen); /* ASCIIfy dynamic attribute (returns GA_*) */ + int (*get_attr)(const struct eattr *, byte *buf, int buflen); /* ASCIIfy dynamic attribute (returns GA_*) */ void (*show_proto_info)(struct proto *); /* Show protocol info (for `show protocols all' command) */ void (*copy_config)(struct proto_config *, struct proto_config *); /* Copy config from given protocol instance */ }; diff --git a/nest/route.h b/nest/route.h index 5421ece5..1b4f2866 100644 --- a/nest/route.h +++ b/nest/route.h @@ -577,7 +577,7 @@ void ea_merge(ea_list *from, ea_list *to); /* Merge sub-lists to allocated buffe int ea_same(ea_list *x, ea_list *y); /* Test whether two ea_lists are identical */ uint ea_hash(ea_list *e); /* Calculate 16-bit hash value */ ea_list *ea_append(ea_list *to, ea_list *what); -void ea_format_bitfield(struct eattr *a, byte *buf, int bufsize, const char **names, int min, int max); +void ea_format_bitfield(const struct eattr *a, byte *buf, int bufsize, const char **names, int min, int max); #define ea_normalize(ea) do { \ if (ea->next) { \ diff --git a/nest/rt-attr.c b/nest/rt-attr.c index 3f83edce..28d956bc 100644 --- a/nest/rt-attr.c +++ b/nest/rt-attr.c @@ -790,7 +790,7 @@ ea_free(ea_list *o) } static int -get_generic_attr(eattr *a, byte **buf, int buflen UNUSED) +get_generic_attr(const eattr *a, byte **buf, int buflen UNUSED) { if (a->id == EA_GEN_IGP_METRIC) { @@ -802,7 +802,7 @@ get_generic_attr(eattr *a, byte **buf, int buflen UNUSED) } void -ea_format_bitfield(struct eattr *a, byte *buf, int bufsize, const char **names, int min, int max) +ea_format_bitfield(const struct eattr *a, byte *buf, int bufsize, const char **names, int min, int max) { byte *bound = buf + bufsize - 32; u32 data = a->u.data; @@ -898,7 +898,7 @@ ea_show_lc_set(struct cli *c, const struct adata *ad, byte *pos, byte *buf, byte * get_attr() hook, it's consulted first. */ void -ea_show(struct cli *c, eattr *e) +ea_show(struct cli *c, const eattr *e) { struct protocol *p; int status = GA_UNKNOWN; diff --git a/proto/babel/babel.c b/proto/babel/babel.c index a915e8fa..ebd5f7cc 100644 --- a/proto/babel/babel.c +++ b/proto/babel/babel.c @@ -1852,7 +1852,7 @@ babel_get_route_info(rte *rte, byte *buf) } static int -babel_get_attr(eattr *a, byte *buf, int buflen UNUSED) +babel_get_attr(const eattr *a, byte *buf, int buflen UNUSED) { switch (a->id) { diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c index 655ddb62..4710bfba 100644 --- a/proto/bgp/attrs.c +++ b/proto/bgp/attrs.c @@ -72,7 +72,7 @@ struct bgp_attr_desc { void (*export)(struct bgp_export_state *s, eattr *a); int (*encode)(struct bgp_write_state *s, eattr *a, byte *buf, uint size); void (*decode)(struct bgp_parse_state *s, uint code, uint flags, byte *data, uint len, ea_list **to); - void (*format)(eattr *ea, byte *buf, uint size); + void (*format)(const eattr *ea, byte *buf, uint size); }; static const struct bgp_attr_desc bgp_attr_table[]; @@ -396,7 +396,7 @@ bgp_decode_origin(struct bgp_parse_state *s, uint code UNUSED, uint flags, byte } static void -bgp_format_origin(eattr *a, byte *buf, uint size UNUSED) +bgp_format_origin(const eattr *a, byte *buf, uint size UNUSED) { static const char *bgp_origin_names[] = { "IGP", "EGP", "Incomplete" }; @@ -510,7 +510,7 @@ bgp_decode_next_hop(struct bgp_parse_state *s, uint code UNUSED, uint flags UNUS /* TODO: This function should use AF-specific hook */ static void -bgp_format_next_hop(eattr *a, byte *buf, uint size UNUSED) +bgp_format_next_hop(const eattr *a, byte *buf, uint size UNUSED) { ip_addr *nh = (void *) a->u.ptr->data; uint len = a->u.ptr->length; @@ -601,7 +601,7 @@ bgp_decode_aggregator(struct bgp_parse_state *s, uint code UNUSED, uint flags, b } static void -bgp_format_aggregator(eattr *a, byte *buf, uint size UNUSED) +bgp_format_aggregator(const eattr *a, byte *buf, uint size UNUSED) { const byte *data = a->u.ptr->data; @@ -676,7 +676,7 @@ bgp_decode_cluster_list(struct bgp_parse_state *s, uint code UNUSED, uint flags, } static void -bgp_format_cluster_list(eattr *a, byte *buf, uint size) +bgp_format_cluster_list(const eattr *a, byte *buf, uint size) { /* Truncates cluster lists larger than buflen, probably not a problem */ int_set_format(a->u.ptr, 0, -1, buf, size); @@ -831,7 +831,7 @@ bgp_decode_aigp(struct bgp_parse_state *s, uint code UNUSED, uint flags, byte *d } static void -bgp_format_aigp(eattr *a, byte *buf, uint size UNUSED) +bgp_format_aigp(const eattr *a, byte *buf, uint size UNUSED) { const byte *b = bgp_aigp_get_tlv(a->u.ptr, BGP_AIGP_METRIC); @@ -909,7 +909,7 @@ bgp_decode_mpls_label_stack(struct bgp_parse_state *s, uint code UNUSED, uint fl } static void -bgp_format_mpls_label_stack(eattr *a, byte *buf, uint size) +bgp_format_mpls_label_stack(const eattr *a, byte *buf, uint size) { u32 *labels = (u32 *) a->u.ptr->data; uint lnum = a->u.ptr->length / 4; @@ -2293,7 +2293,7 @@ bgp_process_as4_attrs(ea_list **attrs, struct linpool *pool) } int -bgp_get_attr(eattr *a, byte *buf, int buflen) +bgp_get_attr(const eattr *a, byte *buf, int buflen) { uint i = EA_ID(a->id); const struct bgp_attr_desc *d; diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h index 0529c45a..455f04f9 100644 --- a/proto/bgp/bgp.h +++ b/proto/bgp/bgp.h @@ -581,7 +581,7 @@ int bgp_rte_recalculate(rtable *table, net *net, rte *new, rte *old, rte *old_be struct rte *bgp_rte_modify_stale(struct rte *r, struct linpool *pool); void bgp_rt_notify(struct proto *P, struct channel *C, net *n, rte *new, rte *old); int bgp_preexport(struct proto *, struct rte **, struct linpool *); -int bgp_get_attr(struct eattr *e, byte *buf, int buflen); +int bgp_get_attr(const struct eattr *e, byte *buf, int buflen); void bgp_get_route_info(struct rte *, byte *buf); int bgp_total_aigp_metric_(rte *e, u64 *metric, const struct adata **ad); diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 3cb40283..c8ed0e06 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -620,7 +620,7 @@ ospf_get_route_info(rte * rte, byte * buf) } static int -ospf_get_attr(eattr * a, byte * buf, int buflen UNUSED) +ospf_get_attr(const eattr * a, byte * buf, int buflen UNUSED) { switch (a->id) { diff --git a/proto/radv/radv.c b/proto/radv/radv.c index 622b3c3c..b4235917 100644 --- a/proto/radv/radv.c +++ b/proto/radv/radv.c @@ -740,7 +740,7 @@ radv_pref_str(u32 pref) /* The buffer has some minimal size */ static int -radv_get_attr(eattr *a, byte *buf, int buflen UNUSED) +radv_get_attr(const eattr *a, byte *buf, int buflen UNUSED) { switch (a->id) { diff --git a/proto/rip/rip.c b/proto/rip/rip.c index f02d5071..ae8007d9 100644 --- a/proto/rip/rip.c +++ b/proto/rip/rip.c @@ -1190,7 +1190,7 @@ rip_get_route_info(rte *rte, byte *buf) } static int -rip_get_attr(eattr *a, byte *buf, int buflen UNUSED) +rip_get_attr(const eattr *a, byte *buf, int buflen UNUSED) { switch (a->id) { diff --git a/sysdep/bsd/krt-sys.h b/sysdep/bsd/krt-sys.h index aa6cc72e..57501884 100644 --- a/sysdep/bsd/krt-sys.h +++ b/sysdep/bsd/krt-sys.h @@ -46,7 +46,7 @@ static inline void krt_sys_io_init(void) { } static inline void krt_sys_init(struct krt_proto *p UNUSED) { } static inline void krt_sys_postconfig(struct krt_config *x UNUSED) { } -static inline int krt_sys_get_attr(eattr *a UNUSED, byte *buf UNUSED, int buflen UNUSED) { return GA_UNKNOWN; } +static inline int krt_sys_get_attr(const eattr *a UNUSED, byte *buf UNUSED, int buflen UNUSED) { return GA_UNKNOWN; } #endif diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c index 856869ac..a9e711b4 100644 --- a/sysdep/linux/netlink.c +++ b/sysdep/linux/netlink.c @@ -2065,7 +2065,7 @@ static const char *krt_features_names[KRT_FEATURES_MAX] = { }; int -krt_sys_get_attr(eattr *a, byte *buf, int buflen UNUSED) +krt_sys_get_attr(const eattr *a, byte *buf, int buflen UNUSED) { switch (a->id) { diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index 42dd12f6..cccee456 100644 --- a/sysdep/unix/krt.c +++ b/sysdep/unix/krt.c @@ -1156,7 +1156,7 @@ krt_copy_config(struct proto_config *dest, struct proto_config *src) } static int -krt_get_attr(eattr *a, byte *buf, int buflen) +krt_get_attr(const eattr *a, byte *buf, int buflen) { switch (a->id) { diff --git a/sysdep/unix/krt.h b/sysdep/unix/krt.h index 6066f2f1..4a5d10d2 100644 --- a/sysdep/unix/krt.h +++ b/sysdep/unix/krt.h @@ -141,7 +141,7 @@ void krt_sys_copy_config(struct krt_config *, struct krt_config *); int krt_capable(rte *e); void krt_do_scan(struct krt_proto *); void krt_replace_rte(struct krt_proto *p, net *n, rte *new, rte *old); -int krt_sys_get_attr(eattr *a, byte *buf, int buflen); +int krt_sys_get_attr(const eattr *a, byte *buf, int buflen); /* kif sysdep */ -- cgit v1.2.3