summaryrefslogtreecommitdiffstats
path: root/shlibs
diff options
context:
space:
mode:
authorTimo Warns2011-05-06 11:04:24 +0200
committerKarel Zak2011-05-06 12:37:36 +0200
commitb61b85c7d9a229e567e2e0b126e3e47c8caacb91 (patch)
treef166ccfa1c4d7d1568a1ce5ccd3d74661545df86 /shlibs
parentdocs: update TODO file (diff)
downloadkernel-qcow2-util-linux-b61b85c7d9a229e567e2e0b126e3e47c8caacb91.tar.gz
kernel-qcow2-util-linux-b61b85c7d9a229e567e2e0b126e3e47c8caacb91.tar.xz
kernel-qcow2-util-linux-b61b85c7d9a229e567e2e0b126e3e47c8caacb91.zip
libblkid: validate hfs blocksize != 0
Validate that blocksize != 0 as a blocksize == 0 can cause a division-by-zero error. Signed-off-by: Timo Warns <warns@pre-sense.de>
Diffstat (limited to 'shlibs')
-rw-r--r--shlibs/blkid/src/superblocks/hfs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/shlibs/blkid/src/superblocks/hfs.c b/shlibs/blkid/src/superblocks/hfs.c
index aa9da0ce6..a03ee4851 100644
--- a/shlibs/blkid/src/superblocks/hfs.c
+++ b/shlibs/blkid/src/superblocks/hfs.c
@@ -225,6 +225,9 @@ static int probe_hfsplus(blkid_probe pr, const struct blkid_idmag *mag)
hfs_set_uuid(pr, hfsplus->finder_info.id, sizeof(hfsplus->finder_info.id));
blocksize = be32_to_cpu(hfsplus->blocksize);
+ if (blocksize == 0)
+ return 0;
+
memcpy(extents, hfsplus->cat_file.extents, sizeof(extents));
cat_block = be32_to_cpu(extents[0].start_block);