[U-Boot] [PATCH] display_buffer: fix misaligned buffer

Detlev Zundel dzu at denx.de
Mon Aug 30 10:59:36 CEST 2010


Hi Reinhard,

> Signed-off-by: Reinhard Meyer <u-boot at emk-elektronik.de>
> ---
>  lib/display_options.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/lib/display_options.c b/lib/display_options.c
> index 20319e6..9048a8a 100644
> --- a/lib/display_options.c
> +++ b/lib/display_options.c
> @@ -101,7 +101,7 @@ void print_size(unsigned long long size, const char *s)
>  #define DEFAULT_LINE_LENGTH_BYTES (16)
>  int print_buffer (ulong addr, void* data, uint width, uint count, uint linelen)
>  {
> -	uint8_t linebuf[MAX_LINE_LENGTH_BYTES + 1];
> +	uint32_t linebuf[MAX_LINE_LENGTH_BYTES/4 + 1];
>  	uint32_t *uip = (void*)linebuf;
>  	uint16_t *usp = (void*)linebuf;
>  	uint8_t *ucp = (void*)linebuf;

Sorry to jump in here late, but I do not like this change.  How can a
reader of the code who has not followed the discussion here infer that
the datatype is there to ensure alignment?

I am willing to bet at least a few beers that it will not take long
until someone posts a patch changing the datatype back, because
c-strings are bytes.

I would much rather see an alignment attribute, which will _document_
the problem _and_ fix it, instead of only fixing it.

Cheers
  Detlev

-- 
The GNU GPL makes sense in terms of its purpose: freedom and social
solidarity.  Trying to understand it in terms of the goals and values of
open source is like trying understand a CD drive's retractable drawer as
a cupholder.  You can use it for that, but that is not what it was
designed for.                      -- Richard Stallman
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the U-Boot mailing list