ipl: Close file handles after usage Signed-off-by: Helge Deller <deller@gmx.de>
diff --git a/ipl/ipl.c b/ipl/ipl.c index ef422d3..b69cfb6 100644 --- a/ipl/ipl.c +++ b/ipl/ipl.c
@@ -333,11 +333,13 @@ 512ULL * partition[part - 1].length); if(ext2_mount(part_fd, 0, 0) == -1) { printf("Failed to mount partition %d\n", part); + fileio_close(part_fd); return; } if((fd = ext2_open(kern_dir)) == -1) { printf("Failed to open directory %s\n", kern_dir); + fileio_close(part_fd); return; } @@ -349,6 +351,7 @@ printf("\n"); ext2_close(fd); + fileio_close(part_fd); /* There's no umount ... since the next mount reuses * the current one's data structures ... */ } @@ -780,6 +783,7 @@ if (!load_kernel(kernfd, &entry, &wide)) { + fileio_close(kernfd); die("ERROR: failed to load kernel\n"); goto restart; } @@ -791,6 +795,7 @@ { printf("ERROR: failed to load ramdisk - proceeding anyway\n"); } + fileio_close(rdfd); } } else /* kern_part > 0 && we're partitioned */ @@ -825,12 +830,17 @@ { printf("ERROR: open %s from partition %d failed\n", kern_name, kern_part); + fileio_close(mount_fd); + fileio_close(part_fd); goto restart; } bkern_fd = byteio_open(kern_fd); if (!load_kernel(bkern_fd, &entry, &wide)) { + fileio_close(bkern_fd); + fileio_close(mount_fd); + fileio_close(part_fd); die("ERROR: failed to load kernel\n"); goto restart; }