summaryrefslogtreecommitdiff
path: root/extras/volume_id/libvolume_id/mac.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2006-01-13 13:18:41 +0100
committerKay Sievers <kay.sievers@suse.de>2006-01-13 13:18:41 +0100
commite3440f37f026b1e45d48f27ef1be903542b385f0 (patch)
tree9cdfef94d3208365492f7047d745b03671774efe /extras/volume_id/libvolume_id/mac.c
parentd548032795b3c02aad606537a35ff63d954f1613 (diff)
vol_id: probe volume as user nobody
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'extras/volume_id/libvolume_id/mac.c')
-rw-r--r--extras/volume_id/libvolume_id/mac.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/extras/volume_id/libvolume_id/mac.c b/extras/volume_id/libvolume_id/mac.c
index 99bcbde6be..53f0761c8a 100644
--- a/extras/volume_id/libvolume_id/mac.c
+++ b/extras/volume_id/libvolume_id/mac.c
@@ -84,14 +84,15 @@ int volume_id_probe_mac_partition_map(struct volume_id *id, uint64_t off)
part_count = be32_to_cpu(part->map_count);
dbg("expecting %d partition entries", part_count);
+ if (part_count < 1 || part_count > 256)
+ return -1;
if (id->partitions != NULL)
free(id->partitions);
- id->partitions =
- malloc(part_count * sizeof(struct volume_id_partition));
+ id->partitions = malloc(part_count * sizeof(struct volume_id_partition));
if (id->partitions == NULL)
return -1;
- memset(id->partitions, 0x00, sizeof(struct volume_id_partition));
+ memset(id->partitions, 0x00, part_count * sizeof(struct volume_id_partition));
id->partition_count = part_count;