Am 05.03.2012 19:06, schrieb Dan Carpenter: > "filename" is a efi_char16_t string so this check for reaching the end > of the array doesn't work. We need to cast the pointer to (u8 *) before > doing the math. > > This patch changes the "filename" to "filename_16" to avoid confusion in > the future. > maybe it is a bit late, but ... is efi_char16_t a generic requirement for EFI ? perhaps we can use wchar_t since it is intended for such cases. additional we would get an api for free. just my 2 cents, wh > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- > v2: Rename "filename" to "filename_16" > Also changed cast from (char *) to (u8 *) because it's not a C > character string. Ingo suggested (void *) but that's a GCCism > I think. > > diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c > index fec216f..0cdfc0d 100644 > --- a/arch/x86/boot/compressed/eboot.c > +++ b/arch/x86/boot/compressed/eboot.c > @@ -539,7 +539,7 @@ static efi_status_t handle_ramdisks(efi_loaded_image_t *image, > struct initrd *initrd; > efi_file_handle_t *h; > efi_file_info_t *info; > - efi_char16_t filename[256]; > + efi_char16_t filename_16[256]; > unsigned long info_sz; > efi_guid_t info_guid = EFI_FILE_INFO_ID; > efi_char16_t *p; > @@ -552,14 +552,14 @@ static efi_status_t handle_ramdisks(efi_loaded_image_t *image, > str += 7; > > initrd = &initrds[i]; > - p = filename; > + p = filename_16; > > /* Skip any leading slashes */ > while (*str == '/' || *str == '\\') > str++; > > while (*str && *str != ' ' && *str != '\n') { > - if (p >= filename + sizeof(filename)) > + if ((u8 *)p >= (u8 *)filename_16 + sizeof(filename_16)) > break; > > *p++ = *str++; > @@ -583,7 +583,7 @@ static efi_status_t handle_ramdisks(efi_loaded_image_t *image, > goto free_initrds; > } > > - status = efi_call_phys5(fh->open, fh, &h, filename, > + status = efi_call_phys5(fh->open, fh, &h, filename_16, > EFI_FILE_MODE_READ, (u64)0); > if (status != EFI_SUCCESS) > goto close_handles; > -- > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html