summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--load-options.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/load-options.c b/load-options.c
index 480832c1..e34aa381 100644
--- a/load-options.c
+++ b/load-options.c
@@ -310,9 +310,17 @@ parse_load_options(EFI_LOADED_IMAGE *li)
UINT32 remaining_size;
CHAR16 *loader_str = NULL;
- /* Sanity check since we make several assumptions about the length */
+ /*
+ * Sanity check since we make several assumptions about the length
+ * Some firmware feeds the following load option when booting from
+ * an USB device:
+ *
+ * 0x46 0x4a 0x00 |FJ.|
+ *
+ * The string is meaningless for shim and so just ignore it.
+ */
if (li->LoadOptionsSize % 2 != 0)
- return EFI_INVALID_PARAMETER;
+ return EFI_SUCCESS;
/* So, load options are a giant pain in the ass. If we're invoked
* from the EFI shell, we get something like this: