Index: firmware/lib/vboot_firmware.c |
diff --git a/firmware/lib/vboot_firmware.c b/firmware/lib/vboot_firmware.c |
index a59b238e850d40d60f253defe5d5432e2593d5eb..8fa4c53834ffb419b1a80f0c2c8379a9399dc1ea 100644 |
--- a/firmware/lib/vboot_firmware.c |
+++ b/firmware/lib/vboot_firmware.c |
@@ -45,11 +45,14 @@ int LoadFirmware(LoadFirmwareParams* params) { |
/* Clear output params in case we fail */ |
params->firmware_index = 0; |
- params->kernel_sign_key_blob = NULL; |
- params->kernel_sign_key_size = 0; |
debug("LoadFirmware started...\n"); |
+ if (params->kernel_sign_key_size < sizeof(VbPublicKey)) { |
+ debug("Kernel sign key buffer too small\n"); |
+ return LOAD_FIRMWARE_RECOVERY; |
+ } |
+ |
/* Must have a root key */ |
if (!root_key) { |
debug("No root key\n"); |