[Skiboot] [PATCH 1/8] core/pci: pci_slot_add_loc use NUL terminated strings
Nicholas Piggin
npiggin at gmail.com
Sun Apr 28 00:44:52 AEST 2019
Use NUL terminated strings consistently, making the maximum string
length in all cases the same, and avoiding dt_add_property_nstr.
This avoids the following warning that appears after adding more
checking to string ops:
core/pci-slot.c: In function ‘pci_slot_add_loc’:
skiboot/libc/include/string.h:19:17: warning: ‘__builtin_strncpy’
specified bound 80 equals destination size [-Wstringop-truncation]
#define strncpy __builtin_strncpy
core/pci-slot.c:244:3: note: in expansion of macro ‘strncpy’
strncpy(loc_code, label, sizeof(loc_code));
^~~~~~~
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
core/pci-slot.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/core/pci-slot.c b/core/pci-slot.c
index 497d0a47f..54f25befe 100644
--- a/core/pci-slot.c
+++ b/core/pci-slot.c
@@ -222,7 +222,7 @@ struct pci_slot *pci_slot_find(uint64_t id)
void pci_slot_add_loc(struct pci_slot *slot,
struct dt_node *np, const char *label)
{
- char tmp[8], loc_code[LOC_CODE_SIZE];
+ char tmp[8], loc_code[LOC_CODE_SIZE + 1];
struct pci_device *pd = slot->pd;
struct phb *phb = slot->phb;
@@ -241,10 +241,10 @@ void pci_slot_add_loc(struct pci_slot *slot,
snprintf(loc_code, sizeof(loc_code), "%s-%s",
phb->base_loc_code, label);
} else {
- strncpy(loc_code, label, sizeof(loc_code));
+ strncpy(loc_code, label, sizeof(loc_code) - 1);
+ loc_code[LOC_CODE_SIZE] = '\0';
}
dt_add_property_string(np, "ibm,slot-label", label);
- dt_add_property_nstr(np, "ibm,slot-location-code", loc_code,
- sizeof(loc_code));
+ dt_add_property_string(np, "ibm,slot-location-code", loc_code);
}
--
2.20.1
More information about the Skiboot
mailing list