aboutsummaryrefslogtreecommitdiffstats
path: root/fs/partitions/efi.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/partitions/efi.c')
-rw-r--r--fs/partitions/efi.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/partitions/efi.c b/fs/partitions/efi.c
index 80eeff5fdfe0..49cfd5f54238 100644
--- a/fs/partitions/efi.c
+++ b/fs/partitions/efi.c
@@ -262,15 +262,16 @@ static gpt_header *
262alloc_read_gpt_header(struct block_device *bdev, u64 lba) 262alloc_read_gpt_header(struct block_device *bdev, u64 lba)
263{ 263{
264 gpt_header *gpt; 264 gpt_header *gpt;
265 unsigned ssz = bdev_logical_block_size(bdev);
266
265 if (!bdev) 267 if (!bdev)
266 return NULL; 268 return NULL;
267 269
268 gpt = kzalloc(sizeof (gpt_header), GFP_KERNEL); 270 gpt = kzalloc(ssz, GFP_KERNEL);
269 if (!gpt) 271 if (!gpt)
270 return NULL; 272 return NULL;
271 273
272 if (read_lba(bdev, lba, (u8 *) gpt, 274 if (read_lba(bdev, lba, (u8 *) gpt, ssz) < ssz) {
273 sizeof (gpt_header)) < sizeof (gpt_header)) {
274 kfree(gpt); 275 kfree(gpt);
275 gpt=NULL; 276 gpt=NULL;
276 return NULL; 277 return NULL;