blob: 501b66699c2e40ebf38895f5a18c9deb66fca953 [file] [log] [blame]
Andrew Geisslerbffdb3e2020-08-21 16:13:29 -05001From 61291de03cb6dd1aea2a633eb72951f3fe453e7f Mon Sep 17 00:00:00 2001
2From: Aaron Conole <aconole@redhat.com>
3Date: Mon, 3 Aug 2020 15:33:08 -0400
4Subject: [PATCH 8/9] stringops: fix some string copy errors
5
6Reported when using gcc-10.
7
8Signed-off-by: Aaron Conole <aconole@redhat.com>
9---
10 dcb_protocol.c | 13 ++++---------
11 lldp/ports.c | 2 +-
12 2 files changed, 5 insertions(+), 10 deletions(-)
13
14diff --git a/dcb_protocol.c b/dcb_protocol.c
15index 75ca139..930251b 100644
16--- a/dcb_protocol.c
17+++ b/dcb_protocol.c
18@@ -2257,13 +2257,8 @@ cmd_status get_bwg_descrpt(char *device_name, u8 bwgid, char **name)
19
20 if ((it != NULL) &&
21 (bwgid < it->second->max_pgid_desc)) {
22- size = (int)strlen(it->second->pgid_desc[bwgid]) +
23- sizeof(char); /* Localization OK */
24- *name = (char*)malloc(size);
25- if (*name != NULL) {
26- strncpy(*name, it->second->pgid_desc[bwgid],
27- size); /* Localization OK */
28- } else {
29+ *name = strdup(it->second->pgid_desc[bwgid]);
30+ if (*name == NULL) {
31 goto Error;
32 }
33 } else {
34@@ -2272,9 +2267,9 @@ cmd_status get_bwg_descrpt(char *device_name, u8 bwgid, char **name)
35 size = (int)strlen(
36 attribs.descript.pgid_desc[bwgid]) +
37 sizeof(char);
38- *name = (char*)malloc(size);
39+ *name = (char*)calloc(size, sizeof(char));
40 if (*name != NULL) {
41- memcpy(*name, attribs.descript.pgid_desc[bwgid], size); /* Localization OK */
42+ memcpy(*name, attribs.descript.pgid_desc[bwgid], size - 1); /* Localization OK */
43 } else {
44 goto Error;
45 }
46diff --git a/lldp/ports.c b/lldp/ports.c
47index 6384f14..9b681f7 100644
48--- a/lldp/ports.c
49+++ b/lldp/ports.c
50@@ -264,7 +264,7 @@ struct port *add_port(int ifindex, const char *ifname)
51 memset(newport, 0, sizeof(*newport));
52 newport->ifindex = ifindex;
53 newport->next = NULL;
54- strncpy(newport->ifname, ifname, IFNAMSIZ);
55+ strncpy(newport->ifname, ifname, IFNAMSIZ - 1);
56
57 newport->bond_master = is_bond(ifname);
58 /* Initialize relevant port variables */
59--
602.28.0
61