Manpage of strncpy() says: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated. Put \0 to the end of the buffer to ensure that the destination string is NULL-terminated. This patch also fixes a compile error with a newer version of GCC. Signed-off-by: Oleh Kravchenko <oleg@xxxxxxxxxx> --- mmc_cmds.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mmc_cmds.c b/mmc_cmds.c index 73bd32a..753fcd9 100644 --- a/mmc_cmds.c +++ b/mmc_cmds.c @@ -1392,7 +1392,6 @@ int do_read_extcsd(int nargs, char **argv) __u32 regl; int fd, ret; char *device; - char lbuf[10]; const char *str; if (nargs != 2) { @@ -1834,9 +1833,7 @@ int do_read_extcsd(int nargs, char **argv) } if (ext_csd_rev >= 7) { - memset(lbuf, 0, sizeof(lbuf)); - strncpy(lbuf, (char*)&ext_csd[EXT_CSD_FIRMWARE_VERSION], 8); - printf("eMMC Firmware Version: %s\n", lbuf); + printf("eMMC Firmware Version: %.*s\n", 8, (char*)&ext_csd[EXT_CSD_FIRMWARE_VERSION]); printf("eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x%02x\n", ext_csd[EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]); printf("eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x%02x\n", -- 2.32.0