diff options
| author | Toomas Soome <tsoome@me.com> | 2020-05-17 15:31:37 +0300 |
|---|---|---|
| committer | Toomas Soome <tsoome@me.com> | 2021-03-31 00:08:29 +0300 |
| commit | 3bbba396f8599b5a3225ae7d8bb0119abdfaa427 (patch) | |
| tree | 1da4df894af265e76e36da8743c660a7492e6661 /usr/src | |
| parent | fd8be61dc48514ff8e3bb97fdb04972e2765a6da (diff) | |
| download | illumos-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.c | 11 |
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); } } |
