On Tue, Mar 30, 2010 at 03:37:38PM -0400, Phillip Susi wrote:
> How do these look? By the way, why are we using ped_malloc() and not
> ped_free()? Passing a pointer to free() that did not come from malloc()
> is an error, so only works as long as ped_malloc() is just a wrapper for
> malloc(), and if that has to be the case, what is the point of ped_malloc()?
[...]
> + if (!rets[i - 1] && errnums[i - 1] == EBUSY) {
> + struct hd_geometry geom;
> + int fd;
> + unsigned long long length = 0;
> + /* get start and length of existing
> partition */
> + char *dev_name = _device_get_part_path
> (disk->dev, i);
> + if (!dev_name)
> + goto free_errnums;
> + fd = open (dev_name, O_RDONLY);
> + free (dev_name);
> + if (fd == -1 ||
> + ioctl (fd, HDIO_GETGEO, &geom) ||
> + ioctl (fd, BLKGETSIZE64, &length)) {
> + ped_exception_throw (
> +
> PED_EXCEPTION_BUG,
> +
> PED_EXCEPTION_CANCEL,
> + _("Unable to
> determine the size and length of %s."),
> + dev_name);
Here, dev_name is used after it has been freed. ^^^^
> + if( fd != -1 )
> + close (fd);
> + goto free_errnums;
> + }
Petr
--
Petr Uzel, openSUSE Boosters Team
IRC: ptr_uzl @ freenode
_______________________________________________
parted-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/parted-devel