From 48e1c56161d40e0fb761f11a7c076553886fb7e4 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 23 Dec 2024 01:07:21 +0100 Subject: Fix port leaks get_privileged_ports adds a port ref, so we have to deallocate it. --- libmachdev/ds_routines.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libmachdev') 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; } -- cgit v1.2.3