Refix the device memleak fix in error code path.
(Logical change 1.602)edge.strict_endians
parent
d5457c0a23
commit
84a4fd30bf
|
|
@ -592,7 +592,6 @@ ntfs_volume *ntfs_device_mount(struct ntfs_device *dev, unsigned long rwflag)
|
||||||
vol = ntfs_volume_startup(dev, rwflag);
|
vol = ntfs_volume_startup(dev, rwflag);
|
||||||
if (!vol) {
|
if (!vol) {
|
||||||
Dperror("Failed to startup volume");
|
Dperror("Failed to startup volume");
|
||||||
ntfs_device_free (dev);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -961,13 +960,20 @@ ntfs_volume *ntfs_mount(const char *name __attribute__((unused)),
|
||||||
{
|
{
|
||||||
#ifndef NO_NTFS_DEVICE_DEFAULT_IO_OPS
|
#ifndef NO_NTFS_DEVICE_DEFAULT_IO_OPS
|
||||||
struct ntfs_device *dev;
|
struct ntfs_device *dev;
|
||||||
|
ntfs_volume *vol;
|
||||||
|
|
||||||
/* Allocate an ntfs_device structure. */
|
/* Allocate an ntfs_device structure. */
|
||||||
dev = ntfs_device_alloc(name, 0, &ntfs_device_default_io_ops, NULL);
|
dev = ntfs_device_alloc(name, 0, &ntfs_device_default_io_ops, NULL);
|
||||||
if (!dev)
|
if (!dev)
|
||||||
return NULL;
|
return NULL;
|
||||||
/* Call ntfs_device_mount() to do the actual mount. */
|
/* Call ntfs_device_mount() to do the actual mount. */
|
||||||
return ntfs_device_mount(dev, rwflag);
|
vol = ntfs_device_mount(dev, rwflag);
|
||||||
|
if (!vol) {
|
||||||
|
int eo = errno;
|
||||||
|
ntfs_device_free(dev);
|
||||||
|
errno = eo;
|
||||||
|
}
|
||||||
|
return vol;
|
||||||
#else
|
#else
|
||||||
/*
|
/*
|
||||||
* ntfs_mount() makes no sense if NO_NTFS_DEVICE_DEFAULT_IO_OPS is
|
* ntfs_mount() makes no sense if NO_NTFS_DEVICE_DEFAULT_IO_OPS is
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue