[U-Boot] [PATCH v2] tools/kwbimage: Fix compilation warning

This patch fixes a compilation warning of kwbimage.c:
tools/kwbimage.c: In function ‘kwbimage_set_header’: tools/kwbimage.c:784:8: warning: ‘headersz’ may be used uninitialized in this function [-Wmaybe-uninitialized] memcpy(ptr, image, headersz); ^ Instead of using multiple if statements, use a switch statement with a default entry. And return with error if an unsupported version is configured in the cfg file.
Signed-off-by: Stefan Roese sr@denx.de --- v2: - Change error message so that it really makes sense (unsupported version instead of no version) - Change this also in the commit text - Small change (s/is/if)
tools/kwbimage.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/tools/kwbimage.c b/tools/kwbimage.c index 1120e9b..0179c74 100644 --- a/tools/kwbimage.c +++ b/tools/kwbimage.c @@ -752,14 +752,25 @@ static void kwbimage_set_header(void *ptr, struct stat *sbuf, int ifd, }
version = image_get_version(); - /* Fallback to version 0 is no version is provided in the cfg file */ - if (version == -1) - version = 0; - - if (version == 0) + switch (version) { + /* + * Fallback to version 0 if no version is provided in the + * cfg file + */ + case -1: + case 0: image = image_create_v0(&headersz, params, sbuf->st_size); - else if (version == 1) + break; + + case 1: image = image_create_v1(&headersz, params, sbuf->st_size); + break; + + default: + fprintf(stderr, "Unsupported version %d\n", version); + free(image_cfg); + exit(EXIT_FAILURE); + }
if (!image) { fprintf(stderr, "Could not create image\n");

Dear Stefan Roese,
In message 1414492344-19055-1-git-send-email-sr@denx.de you wrote:
This patch fixes a compilation warning of kwbimage.c:
tools/kwbimage.c: In function ‘kwbimage_set_header’: tools/kwbimage.c:784:8: warning: ‘headersz’ may be used uninitialized in this function [-Wmaybe-uninitialized] memcpy(ptr, image, headersz); ^ Instead of using multiple if statements, use a switch statement with a default entry. And return with error if an unsupported version is configured in the cfg file.
Signed-off-by: Stefan Roese sr@denx.de
v2:
- Change error message so that it really makes sense (unsupported version instead of no version)
- Change this also in the commit text
- Small change (s/is/if)
Acked-By: Wolfgang Denk wd@denx.de
Thanks!
Best regards,
Wolfgang Denk

On 10/28/2014 03:38 AM, Wolfgang Denk wrote:
Dear Stefan Roese,
In message 1414492344-19055-1-git-send-email-sr@denx.de you wrote:
This patch fixes a compilation warning of kwbimage.c:
tools/kwbimage.c: In function ‘kwbimage_set_header’: tools/kwbimage.c:784:8: warning: ‘headersz’ may be used uninitialized in this function [-Wmaybe-uninitialized] memcpy(ptr, image, headersz); ^ Instead of using multiple if statements, use a switch statement with a default entry. And return with error if an unsupported version is configured in the cfg file.
Signed-off-by: Stefan Roese sr@denx.de
v2:
- Change error message so that it really makes sense (unsupported version instead of no version)
- Change this also in the commit text
- Small change (s/is/if)
Acked-By: Wolfgang Denk wd@denx.de
I failed to see how the warning message got fixed. I still see this warning when compiling.
York

On Tue, 28 Oct 2014 11:32:24 +0100 Stefan Roese sr@denx.de wrote:
This patch fixes a compilation warning of kwbimage.c:
tools/kwbimage.c: In function ‘kwbimage_set_header’: tools/kwbimage.c:784:8: warning: ‘headersz’ may be used uninitialized in this function [-Wmaybe-uninitialized] memcpy(ptr, image, headersz); ^ Instead of using multiple if statements, use a switch statement with a default entry. And return with error if an unsupported version is configured in the cfg file.
Signed-off-by: Stefan Roese sr@denx.de
v2:
- Change error message so that it really makes sense (unsupported version instead of no version)
- Change this also in the commit text
- Small change (s/is/if)
tools/kwbimage.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-)
Applied to u-boot-staging. Thanks!
Anatolij
participants (4)
-
Anatolij Gustschin
-
Stefan Roese
-
Wolfgang Denk
-
York Sun