diff options
author | Petter Reinholdtsen <pere@hungry.com> | 2014-01-11 07:22:46 +0000 |
---|---|---|
committer | Petter Reinholdtsen <pere@hungry.com> | 2014-01-11 07:22:46 +0000 |
commit | 99fff91f9d095f103e4e3fabf97117eaf133ec9f (patch) | |
tree | bf8cca2ebc6fadaa9557facfdd39507f342bd938 | |
parent | df3e3c7969643ef2bc32fc1bc37f8a977dcf2db2 (diff) | |
download | ipmitool-99fff91f9d095f103e4e3fabf97117eaf133ec9f.tar.gz |
Make sure blockId buffer is never overflown (Coverity CID 1149058).
-rw-r--r-- | ipmitool/lib/ipmi_fru.c | 5 |
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; |