aboutsummaryrefslogtreecommitdiffstats
path: root/fs/partitions
diff options
context:
space:
mode:
Diffstat (limited to 'fs/partitions')
-rw-r--r--fs/partitions/efi.c9
-rw-r--r--fs/partitions/ldm.c7
2 files changed, 15 insertions, 1 deletions
diff --git a/fs/partitions/efi.c b/fs/partitions/efi.c
index 19d6750d1d6c..6296b403c67a 100644
--- a/fs/partitions/efi.c
+++ b/fs/partitions/efi.c
@@ -310,6 +310,15 @@ static int is_gpt_valid(struct parsed_partitions *state, u64 lba,
310 goto fail; 310 goto fail;
311 } 311 }
312 312
313 /* Check the GUID Partition Table header size */
314 if (le32_to_cpu((*gpt)->header_size) >
315 bdev_logical_block_size(state->bdev)) {
316 pr_debug("GUID Partition Table Header size is wrong: %u > %u\n",
317 le32_to_cpu((*gpt)->header_size),
318 bdev_logical_block_size(state->bdev));
319 goto fail;
320 }
321
313 /* Check the GUID Partition Table CRC */ 322 /* Check the GUID Partition Table CRC */
314 origcrc = le32_to_cpu((*gpt)->header_crc32); 323 origcrc = le32_to_cpu((*gpt)->header_crc32);
315 (*gpt)->header_crc32 = 0; 324 (*gpt)->header_crc32 = 0;
diff --git a/fs/partitions/ldm.c b/fs/partitions/ldm.c
index ce4f62440425..af9fdf046769 100644
--- a/fs/partitions/ldm.c
+++ b/fs/partitions/ldm.c
@@ -565,7 +565,7 @@ static bool ldm_validate_partition_table(struct parsed_partitions *state)
565 565
566 data = read_part_sector(state, 0, &sect); 566 data = read_part_sector(state, 0, &sect);
567 if (!data) { 567 if (!data) {
568 ldm_crit ("Disk read failed."); 568 ldm_info ("Disk read failed.");
569 return false; 569 return false;
570 } 570 }
571 571
@@ -1335,6 +1335,11 @@ static bool ldm_frag_add (const u8 *data, int size, struct list_head *frags)
1335 1335
1336 list_add_tail (&f->list, frags); 1336 list_add_tail (&f->list, frags);
1337found: 1337found:
1338 if (rec >= f->num) {
1339 ldm_error("REC value (%d) exceeds NUM value (%d)", rec, f->num);
1340 return false;
1341 }
1342
1338 if (f->map & (1 << rec)) { 1343 if (f->map & (1 << rec)) {
1339 ldm_error ("Duplicate VBLK, part %d.", rec); 1344 ldm_error ("Duplicate VBLK, part %d.", rec);
1340 f->map &= 0x7F; /* Mark the group as broken */ 1345 f->map &= 0x7F; /* Mark the group as broken */