]> git.sur5r.net Git - u-boot/commitdiff
image: Protect against overflow in unknown_msg()
authorSimon Glass <sjg@chromium.org>
Mon, 31 Oct 2016 16:21:09 +0000 (10:21 -0600)
committerTom Rini <trini@konsulko.com>
Sat, 5 Nov 2016 11:27:43 +0000 (07:27 -0400)
Coverity complains that this can overflow. If we later increase the size
of one of the strings in the table, it could happen.

Adjust the code to protect against this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Coverity (CID: 150964)
common/image.c

index 0e86c13a88aa827415d98740894abe12440ed91f..7604494a567ed9cf9af14c2b58a2bc6d1fb3805d 100644 (file)
@@ -587,10 +587,12 @@ const table_entry_t *get_table_entry(const table_entry_t *table, int id)
 
 static const char *unknown_msg(enum ih_category category)
 {
+       static const char unknown_str[] = "Unknown ";
        static char msg[30];
 
-       strcpy(msg, "Unknown ");
-       strcat(msg, table_info[category].desc);
+       strcpy(msg, unknown_str);
+       strncat(msg, table_info[category].desc,
+               sizeof(msg) - sizeof(unknown_str));
 
        return msg;
 }