From: Tom Rini Date: Mon, 21 Aug 2017 00:05:40 +0000 (-0400) Subject: mtdparts: Fix final outstanding issue reported by Coverity X-Git-Url: http://git.dujemihanovic.xyz/login.html?a=commitdiff_plain;h=bc028345acc44a4fe94fd0572ab0552bdfb7f810;p=u-boot.git mtdparts: Fix final outstanding issue reported by Coverity As part of fixing the previously reported issues, it was missed that in the case of mtdparts_init() we need to make sure that tmp_ep is long enough to contain PARTITION_MAXLEN and a NULL termination. Then, to be sure the buffer is NULL terminated, zero the entire buffer rather than just ensuring the first character is NULL. Cc: Lothar Waßmann Cc: Maxime Ripard Reported-by: Coverity (CID: 166329) Signed-off-by: Tom Rini --- diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c index 72bff92a9a..6e12275b40 100644 --- a/cmd/mtdparts.c +++ b/cmd/mtdparts.c @@ -1726,7 +1726,7 @@ int mtdparts_init(void) const char *ids, *parts; const char *current_partition; int ids_changed; - char tmp_ep[PARTITION_MAXLEN]; + char tmp_ep[PARTITION_MAXLEN + 1]; char tmp_parts[MTDPARTS_MAXLEN]; debug("\n---mtdparts_init---\n"); @@ -1750,7 +1750,7 @@ int mtdparts_init(void) /* save it for later parsing, cannot rely on current partition pointer * as 'partition' variable may be updated during init */ - tmp_ep[0] = '\0'; + memset(tmp_parts, 0, sizeof(tmp_parts)); if (current_partition) strncpy(tmp_ep, current_partition, PARTITION_MAXLEN);