summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fallback.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fallback.c b/fallback.c
index 174fd8cb..1780dae9 100644
--- a/fallback.c
+++ b/fallback.c
@@ -204,14 +204,16 @@ do_add_boot_option(int boot_entry_num, EFI_DEVICE_PATH *hddp,
return EFI_OUT_OF_RESOURCES;
int j = 0;
+ int n = 1;
newbootorder[0] = boot_entry_num & 0xffff;
if (nbootorder) {
for (j = 0; j < nbootorder; j++)
- newbootorder[j+1] = bootorder[j];
+ if (bootorder[j] != boot_entry_num)
+ newbootorder[n++] = bootorder[j];
FreePool(bootorder);
}
bootorder = newbootorder;
- nbootorder += 1;
+ nbootorder = n;
#ifdef DEBUG_FALLBACK
Print(L"nbootorder: %d\nBootOrder: ", nbootorder);
for (j = 0 ; j < nbootorder ; j++)