diff --git a/lpd/usysident.c b/lpd/usysident.c index 8fee736..11a512b 100644 --- a/lpd/usysident.c +++ b/lpd/usysident.c @@ -429,7 +429,7 @@ retry: * next elements in the list (which may match the device name); * for this we need to retry, re-starting on the next element. */ - if (dvalue && current->devname && + if (dvalue && current->devname[0] != '\0' && strncmp(dvalue, current->devname, DEV_LENGTH)) { list_start = current->next; goto retry; diff --git a/opal_errd/extract_opal_dump.c b/opal_errd/extract_opal_dump.c index b7f365f..656899d 100644 --- a/opal_errd/extract_opal_dump.c +++ b/opal_errd/extract_opal_dump.c @@ -77,8 +77,10 @@ static void dump_get_file_name(char *buf, int bsize, char *dfile, if (bsize >= DUMP_HDR_PREFIX_OFFSET + sizeof(uint16_t)) *prefix_size = be16toh(*(uint16_t *)(buf + DUMP_HDR_PREFIX_OFFSET)); - if (bsize >= DUMP_HDR_FNAME_OFFSET + DUMP_MAX_FNAME_LEN) - strncpy(dfile, buf + DUMP_HDR_FNAME_OFFSET, dfile_size); + if (bsize >= DUMP_HDR_FNAME_OFFSET + DUMP_MAX_FNAME_LEN) { + strncpy(dfile, buf + DUMP_HDR_FNAME_OFFSET, dfile_size - 1); + dfile[dfile_size - 1] = '\0'; + } else strncpy(dfile, "platform.dumpid.PARTIAL", dfile_size); diff --git a/rtas_errd/extract_platdump.c b/rtas_errd/extract_platdump.c index 831e57e..50bac99 100644 --- a/rtas_errd/extract_platdump.c +++ b/rtas_errd/extract_platdump.c @@ -220,7 +220,7 @@ extract_platform_dump(uint64_t dump_tag) char filename[DUMP_MAX_FNAME_LEN + 1]; char pathname[PATH_MAX]; char dump_err[RTAS_ERROR_LOG_MAX]; - char dumpid[5]; + char dumpid[5] = ""; int out=-1, rc, librtas_rc, dump_complete=0, ret=0; msg("Dump tag: 0x%016LX", dump_tag);