summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2011-03-03 23:41:09 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2011-03-03 23:41:09 +0100
commit97ad0be8db34e507beb7330a6e412715bfd5d54d (patch)
treee2e11d89056cb0d24846c2f1a3d008ba27528f3c
parent7a3fb1934d58c7213b637996b8656563d329beec (diff)
Fix duplicate port deallocation
* libdiskfs/fsys-getroot.c (diskfs_S_fsys_getroot): Do not deallocate `dotdot' parameter port when an error will be returned.
-rw-r--r--libdiskfs/fsys-getroot.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/libdiskfs/fsys-getroot.c b/libdiskfs/fsys-getroot.c
index 54ba0a58..e083032e 100644
--- a/libdiskfs/fsys-getroot.c
+++ b/libdiskfs/fsys-getroot.c
@@ -186,10 +186,9 @@ diskfs_S_fsys_getroot (fsys_t controlport,
diskfs_release_peropen (newpo);
}
- mach_port_deallocate (mach_task_self (), dotdot);
-
if (! error)
{
+ mach_port_deallocate (mach_task_self (), dotdot);
*retry = FS_RETRY_NORMAL;
*retryname = '\0';
*returned_port = ports_get_right (newpi);