> + zones = kzalloc(sizeof(struct blk_zone) * rep.nr_zones,
> + GFP_KERNEL);
> + if (!zones)
> + return -ENOMEM;
This should use kcalloc to get us underflow checking for the user
controlled allocation size.
> + if (copy_to_user(argp, &rep, sizeof(struct blk_zone_report))) {
> + ret = -EFAULT;
> + goto out;
> + }
> +
> + if (rep.nr_zones) {
> + if (copy_to_user(argp + sizeof(struct blk_zone_report), zones,
> + sizeof(struct blk_zone) * rep.nr_zones))
> + ret = -EFAULT;
> + }
We could actually do this with a single big copy_to_user. Not that
it really matters, though..
> -/*
> - * Zone type.
> - */
> -enum blk_zone_type {
> - BLK_ZONE_TYPE_UNKNOWN,
> - BLK_ZONE_TYPE_CONVENTIONAL,
> - BLK_ZONE_TYPE_SEQWRITE_REQ,
> - BLK_ZONE_TYPE_SEQWRITE_PREF,
> -};
Please don't move this code around after it was added just two
patches earlier. I'd say just split adding the new blkzoned.h
uapi header into a patch of it's own and add that before the
core block code.
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html