summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--futility/vb1_helper.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/futility/vb1_helper.c b/futility/vb1_helper.c
index cdc39251..ef497e6c 100644
--- a/futility/vb1_helper.c
+++ b/futility/vb1_helper.c
@@ -384,10 +384,12 @@ uint8_t *unpack_kernel_partition(uint8_t *kpart_data,
g_kernel_blob_size = preamble->body_signature.data_size;
/* Sanity check */
- if (g_kernel_blob_size < preamble->body_signature.data_size)
+ if (kpart_size < now + g_kernel_blob_size) {
fprintf(stderr,
- "Warning: kernel file only has %#x bytes\n",
+ "kernel body size %u exceeds partition end\n",
g_kernel_blob_size);
+ return NULL;
+ }
/* Update the blob pointers */
UnpackKernelBlob(g_kernel_blob_data);