summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetter Reinholdtsen <pere@hungry.com>2014-01-11 07:22:46 +0000
committerPetter Reinholdtsen <pere@hungry.com>2014-01-11 07:22:46 +0000
commit99fff91f9d095f103e4e3fabf97117eaf133ec9f (patch)
treebf8cca2ebc6fadaa9557facfdd39507f342bd938
parentdf3e3c7969643ef2bc32fc1bc37f8a977dcf2db2 (diff)
downloadipmitool-99fff91f9d095f103e4e3fabf97117eaf133ec9f.tar.gz
Make sure blockId buffer is never overflown (Coverity CID 1149058).
-rw-r--r--ipmitool/lib/ipmi_fru.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ipmitool/lib/ipmi_fru.c b/ipmitool/lib/ipmi_fru.c
index 316436f..09d5abe 100644
--- a/ipmitool/lib/ipmi_fru.c
+++ b/ipmitool/lib/ipmi_fru.c
@@ -311,7 +311,10 @@ build_fru_bloc(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id)
p_new->next = NULL;
p_new->start = header.offsets[i] * 8;
p_new->size = fru->size - p_new->start;
- strcpy((char *)p_new->blocId, section_id[i]);
+
+ strncpy((char *)p_new->blocId, section_id[i], sizeof(p_new->blocId));
+ /* Make sure string is null terminated */
+ p_new->blocId[sizeof(p_new->blocId)-1] = 0;
p_bloc->next = p_new;
p_bloc->size = p_new->start - p_bloc->start;