]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
fs/ntfs: Add sizes sanity checks.
authorVladimir Serbinenko <phcoder@gmail.com>
Sun, 25 Jan 2015 12:28:50 +0000 (13:28 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sun, 25 Jan 2015 19:32:31 +0000 (20:32 +0100)
Found by: Coverity scan.

grub-core/fs/ntfs.c

index 2cbcb0b78d0dca99edc9b048706b7192c9344d8b..6f8468862628383736acf25db5bf715d9a095791 100644 (file)
@@ -920,12 +920,16 @@ grub_ntfs_mount (grub_disk_t disk)
 
   if (bpb.clusters_per_mft > 0)
     data->mft_size = ((grub_disk_addr_t) bpb.clusters_per_mft) << data->log_spc;
+  else if (-bpb.clusters_per_mft < GRUB_NTFS_BLK_SHR || -bpb.clusters_per_mft >= 31)
+    goto fail;
   else
     data->mft_size = 1ULL << (-bpb.clusters_per_mft - GRUB_NTFS_BLK_SHR);
 
   if (bpb.clusters_per_index > 0)
     data->idx_size = (((grub_disk_addr_t) bpb.clusters_per_index)
                      << data->log_spc);
+  else if (-bpb.clusters_per_index < GRUB_NTFS_BLK_SHR || -bpb.clusters_per_index >= 31)
+    goto fail;
   else
     data->idx_size = 1ULL << (-bpb.clusters_per_index - GRUB_NTFS_BLK_SHR);