image: Correct strncpy() warning with image_set_name() 52/297452/2
authorSimon Glass <sjg@chromium.org>
Thu, 10 Nov 2022 02:14:39 +0000 (19:14 -0700)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 21 Aug 2023 04:38:24 +0000 (04:38 +0000)
gcc 12 seems to warn on strncpy() as a matter of course. Rewrite the code
a different way to do the same thing, to avoid the warning.

Signed-off-by: Simon Glass <sjg@chromium.org>
[sw0312.kim: cherry-pick upstream commit 88ff7cb1c8bb4 to remove gcc-13 build warning]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: Idda3d015e81fd39d33de1cfc13cc19f78404a5a1

include/image.h

index d7d756c..6c0dffd 100644 (file)
@@ -776,7 +776,13 @@ image_set_hdr_b(comp)              /* image_set_comp */
 
 static inline void image_set_name(image_header_t *hdr, const char *name)
 {
-       strncpy(image_get_name(hdr), name, IH_NMLEN);
+       /*
+        * This is equivalent to: strncpy(image_get_name(hdr), name, IH_NMLEN);
+        *
+        * Use the tortured code below to avoid a warning with gcc 12. We do not
+        * want to include a nul terminator if the name is of length IH_NMLEN
+        */
+       memcpy(image_get_name(hdr), name, strnlen(name, IH_NMLEN));
 }
 
 int image_check_hcrc(const image_header_t *hdr);