diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-12-23 01:07:21 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-12-23 01:07:21 +0100 |
commit | 48e1c56161d40e0fb761f11a7c076553886fb7e4 (patch) | |
tree | 6ddcb4fc5bd83229c488ae4b1a6afff142d920e9 /libmachdev | |
parent | af488a9e8b8e0de5f0c97d07beabbe43249c4b97 (diff) | |
download | hurd-48e1c56161d40e0fb761f11a7c076553886fb7e4.tar.gz hurd-48e1c56161d40e0fb761f11a7c076553886fb7e4.tar.bz2 hurd-48e1c56161d40e0fb761f11a7c076553886fb7e4.zip |
Fix port leaks
get_privileged_ports adds a port ref, so we have to deallocate it.
Diffstat (limited to 'libmachdev')
-rw-r--r-- | libmachdev/ds_routines.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libmachdev/ds_routines.c b/libmachdev/ds_routines.c index 6555d6e9..aeb7f5af 100644 --- a/libmachdev/ds_routines.c +++ b/libmachdev/ds_routines.c @@ -119,7 +119,10 @@ ds_device_open (mach_port_t open_port, mach_port_t reply_port, { err = get_privileged_ports(NULL, &dev_master); if (!err) - err = device_open (dev_master, mode, name, devp); + { + err = device_open (dev_master, mode, name, devp); + mach_port_deallocate (mach_task_self (), dev_master); + } if (!err) *devicePoly = MACH_MSG_TYPE_MOVE_SEND; } |