[U-Boot] [PATCH] sandbox: Correct compiler warnings in cmd_bootm/cmd_ximg

Kees Cook keescook at chromium.org
Fri Aug 30 20:09:57 CEST 2013


On Fri, Aug 30, 2013 at 10:00 AM, Simon Glass <sjg at chromium.org> wrote:
> Correct the following warnings found with sandbox when compression
> is enabled.
>
> cmd_bootm.c: In function 'bootm_load_os':
> cmd_bootm.c:443:11: warning: passing argument 4 of 'lzop_decompress' from incompatible pointer type [enabled by default]
> /usr/local/google/c/cosarm/src/third_party/u-boot/files/include/linux/lzo.h:31:5: note: expected 'size_t *' but argument is of type 'uint *'
> cmd_ximg.c: In function 'do_imgextract':
> cmd_ximg.c:225:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
> cmd_ximg.c:225:14: warning: 'hdr' may be used uninitialized in this function [-Wuninitialized]
>
> Signed-off-by: Simon Glass <sjg at chromium.org>

Acked-by: Kees Cook <keescook at chromium.org>

Thanks! You beat me to it. :)

-Kees

> ---
>  common/cmd_bootm.c | 10 ++++++----
>  common/cmd_ximg.c  |  5 +++--
>  2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> index 1685c14..2dd2642 100644
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -436,11 +436,12 @@ static int bootm_load_os(bootm_headers_t *images, unsigned long *load_end,
>         }
>  #endif /* CONFIG_LZMA */
>  #ifdef CONFIG_LZO
> -       case IH_COMP_LZO:
> +       case IH_COMP_LZO: {
> +               size_t size;
> +
>                 printf("   Uncompressing %s ... ", type_name);
>
> -               ret = lzop_decompress(image_buf, image_len, load_buf,
> -                                     &unc_len);
> +               ret = lzop_decompress(image_buf, image_len, load_buf, &size);
>                 if (ret != LZO_E_OK) {
>                         printf("LZO: uncompress or overwrite error %d "
>                               "- must RESET board to recover\n", ret);
> @@ -449,8 +450,9 @@ static int bootm_load_os(bootm_headers_t *images, unsigned long *load_end,
>                         return BOOTM_ERR_RESET;
>                 }
>
> -               *load_end = load + unc_len;
> +               *load_end = load + size;
>                 break;
> +       }
>  #endif /* CONFIG_LZO */
>         default:
>                 printf("Unimplemented compression type %d\n", comp);
> diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c
> index b439be3..65a8319 100644
> --- a/common/cmd_ximg.c
> +++ b/common/cmd_ximg.c
> @@ -20,6 +20,7 @@
>  #include <bzlib.h>
>  #endif
>  #include <asm/byteorder.h>
> +#include <asm/io.h>
>
>  #ifndef CONFIG_SYS_XIMG_LEN
>  /* use 8MByte as default max gunzip size */
> @@ -34,7 +35,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
>         ulong           data, len, count;
>         int             verify;
>         int             part = 0;
> -       image_header_t  *hdr;
> +       image_header_t  *hdr = NULL;
>  #if defined(CONFIG_FIT)
>         const char      *uname = NULL;
>         const void*     fit_hdr;
> @@ -222,7 +223,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
>                                  * which requires at most 2300 KB of memory.
>                                  */
>                                 i = BZ2_bzBuffToBuffDecompress(
> -                                       (char *)ntohl(hdr->ih_load),
> +                                       map_sysmem(ntohl(hdr->ih_load), 0),
>                                         &unc_len, (char *)data, len,
>                                         CONFIG_SYS_MALLOC_LEN < (4096 * 1024),
>                                         0);
> --
> 1.8.4
>



-- 
Kees Cook
Chrome OS Security


More information about the U-Boot mailing list