diff options
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-protocols/openlldp/files/0008-stringops-fix-some-string-copy-errors.patch')
-rw-r--r-- | meta-openembedded/meta-networking/recipes-protocols/openlldp/files/0008-stringops-fix-some-string-copy-errors.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openlldp/files/0008-stringops-fix-some-string-copy-errors.patch b/meta-openembedded/meta-networking/recipes-protocols/openlldp/files/0008-stringops-fix-some-string-copy-errors.patch new file mode 100644 index 0000000000..501b66699c --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-protocols/openlldp/files/0008-stringops-fix-some-string-copy-errors.patch @@ -0,0 +1,61 @@ +From 61291de03cb6dd1aea2a633eb72951f3fe453e7f Mon Sep 17 00:00:00 2001 +From: Aaron Conole <aconole@redhat.com> +Date: Mon, 3 Aug 2020 15:33:08 -0400 +Subject: [PATCH 8/9] stringops: fix some string copy errors + +Reported when using gcc-10. + +Signed-off-by: Aaron Conole <aconole@redhat.com> +--- + dcb_protocol.c | 13 ++++--------- + lldp/ports.c | 2 +- + 2 files changed, 5 insertions(+), 10 deletions(-) + +diff --git a/dcb_protocol.c b/dcb_protocol.c +index 75ca139..930251b 100644 +--- a/dcb_protocol.c ++++ b/dcb_protocol.c +@@ -2257,13 +2257,8 @@ cmd_status get_bwg_descrpt(char *device_name, u8 bwgid, char **name) + + if ((it != NULL) && + (bwgid < it->second->max_pgid_desc)) { +- size = (int)strlen(it->second->pgid_desc[bwgid]) + +- sizeof(char); /* Localization OK */ +- *name = (char*)malloc(size); +- if (*name != NULL) { +- strncpy(*name, it->second->pgid_desc[bwgid], +- size); /* Localization OK */ +- } else { ++ *name = strdup(it->second->pgid_desc[bwgid]); ++ if (*name == NULL) { + goto Error; + } + } else { +@@ -2272,9 +2267,9 @@ cmd_status get_bwg_descrpt(char *device_name, u8 bwgid, char **name) + size = (int)strlen( + attribs.descript.pgid_desc[bwgid]) + + sizeof(char); +- *name = (char*)malloc(size); ++ *name = (char*)calloc(size, sizeof(char)); + if (*name != NULL) { +- memcpy(*name, attribs.descript.pgid_desc[bwgid], size); /* Localization OK */ ++ memcpy(*name, attribs.descript.pgid_desc[bwgid], size - 1); /* Localization OK */ + } else { + goto Error; + } +diff --git a/lldp/ports.c b/lldp/ports.c +index 6384f14..9b681f7 100644 +--- a/lldp/ports.c ++++ b/lldp/ports.c +@@ -264,7 +264,7 @@ struct port *add_port(int ifindex, const char *ifname) + memset(newport, 0, sizeof(*newport)); + newport->ifindex = ifindex; + newport->next = NULL; +- strncpy(newport->ifname, ifname, IFNAMSIZ); ++ strncpy(newport->ifname, ifname, IFNAMSIZ - 1); + + newport->bond_master = is_bond(ifname); + /* Initialize relevant port variables */ +-- +2.28.0 + |