[lkml]   [2012]   [Mar]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 1/3] x86, efi: Only close open files in error path
    From: Matt Fleming <>

    The loop at the 'close_handles' label in handle_ramdisks() should be
    using 'i', which represents the number of initrd files that were
    successfully opened, not 'nr_initrds' which is the number of initrd=
    arguments passed on the command line.

    Currently, if we execute the loop to close all file handles and we
    failed to open any initrds we'll try to call the close function on a
    garbage pointer, causing the machine to hang.

    Cc: H. Peter Anvin <>
    Cc: Matthew Garrett <>
    Signed-off-by: Matt Fleming <>
    arch/x86/boot/compressed/eboot.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
    index fec216f..fb810ce 100644
    --- a/arch/x86/boot/compressed/eboot.c
    +++ b/arch/x86/boot/compressed/eboot.c
    @@ -674,7 +674,7 @@ free_initrd_total:
    low_free(initrd_total, initrd_addr);

    - for (k = j; k < nr_initrds; k++)
    + for (k = j; k < i; k++)
    efi_call_phys1(fh->close, initrds[k].handle);
    efi_call_phys1(sys_table->boottime->free_pool, initrds);

     \ /
      Last update: 2012-03-16 15:21    [W:0.019 / U:17.776 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site