summaryrefslogtreecommitdiff
path: root/fallback.c
diff options
context:
space:
mode:
authorDaniel Drake <drake@endlessm.com>2017-04-25 13:29:45 -0600
committerGitHub <noreply@github.com>2017-04-25 13:29:45 -0600
commitda95c299a2b95728be8e9a1307637d85cfc35233 (patch)
tree986683ed7709e7c16b88bbe6a2c6f2efb251d56b /fallback.c
parentd63a91ba0e50e1e9054e200f8a3e262b668a7ad3 (diff)
parent07bdd31f8352071ea6089225a8838a061e57af31 (diff)
downloadefi-boot-shim-archive/v0.9-endless.tar.gz
efi-boot-shim-archive/v0.9-endless.zip
fallback: Avoid duplicates in BootOrder
Diffstat (limited to 'fallback.c')
-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++)