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    [W:0.021 / U:36.044 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site