summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2020-05-17 15:31:37 +0300
committerToomas Soome <tsoome@me.com>2021-03-31 00:08:29 +0300
commit3bbba396f8599b5a3225ae7d8bb0119abdfaa427 (patch)
tree1da4df894af265e76e36da8743c660a7492e6661 /usr/src
parentfd8be61dc48514ff8e3bb97fdb04972e2765a6da (diff)
downloadillumos-joyent-3bbba396f8599b5a3225ae7d8bb0119abdfaa427.tar.gz
13681 libfruraw: writing 1 byte into a region of size 0
Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/libfru/libfruraw/fruraw.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/lib/libfru/libfruraw/fruraw.c b/usr/src/lib/libfru/libfruraw/fruraw.c
index 39d341486b..968a9bd053 100644
--- a/usr/src/lib/libfru/libfruraw/fruraw.c
+++ b/usr/src/lib/libfru/libfruraw/fruraw.c
@@ -549,10 +549,17 @@ frt_get_segment_name(fru_seghdl_t node, char **name)
for (each_seg = 0; each_seg < num_segment; each_seg++) {
if (segs[each_seg].handle == node) {
- segs[each_seg].name[FRU_SEGNAMELEN] = '\0';
- *name = strdup(segs[each_seg].name);
+ *name = malloc(SEG_NAME_LEN + 1);
+ if (*name != NULL) {
+ (void) memcpy(*name,
+ segs[each_seg].name,
+ SEG_NAME_LEN);
+ *name[SEG_NAME_LEN] = '\0';
+ }
free(sects);
free(segs);
+ if (*name == NULL)
+ return (FRU_FAILURE);
return (FRU_SUCCESS);
}
}