Andrew Geissler | bffdb3e | 2020-08-21 16:13:29 -0500 | [diff] [blame] | 1 | From 61291de03cb6dd1aea2a633eb72951f3fe453e7f Mon Sep 17 00:00:00 2001 |
| 2 | From: Aaron Conole <aconole@redhat.com> |
| 3 | Date: Mon, 3 Aug 2020 15:33:08 -0400 |
| 4 | Subject: [PATCH 8/9] stringops: fix some string copy errors |
| 5 | |
| 6 | Reported when using gcc-10. |
| 7 | |
| 8 | Signed-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 | |
| 14 | diff --git a/dcb_protocol.c b/dcb_protocol.c |
| 15 | index 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 | } |
| 46 | diff --git a/lldp/ports.c b/lldp/ports.c |
| 47 | index 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 | -- |
| 60 | 2.28.0 |
| 61 | |