lkml.org 
[lkml]   [2012]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] x86, efi: fix pointer math issue in handle_ramdisks()

* Dan Carpenter <dan.carpenter@oracle.com> wrote:

> "filename" is a efi_char16_t string so this check for reaching
> the end of the array doesn't work. We need to cast it to char
> pointer before doing the math.

That name should really be changed, 'filename' is a char * by
convention pretty much everywhere in the kernel - so the current
naming is highly misleading and results in bugs like this.

filename_16, filename_2byte or filename_UTF or so would be
suggestive enough to avoid such mishaps in the future.

> @@ -559,7 +559,7 @@ static efi_status_t handle_ramdisks(efi_loaded_image_t *image,
> str++;
>
> while (*str && *str != ' ' && *str != '\n') {
> - if (p >= filename + sizeof(filename))
> + if ((char *)p >= (char *)filename + sizeof(filename))
> break;

I'd also make that void *, because this isnt really a C
character string anymore.

Thanks,

Ingo


\
 
 \ /
  Last update: 2012-03-03 08:57    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean