From 1589f5fbe8fd87858d1a06517db5a7baae918f4f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 1 Jan 2023 13:20:53 +0100 Subject: Do not ignore value returned by get_privileged_ports --- libmachdev/ds_routines.c | 8 +++++--- libmachdev/trivfs_server.c | 8 +++++++- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'libmachdev') diff --git a/libmachdev/ds_routines.c b/libmachdev/ds_routines.c index c5a7cd00..cc99e296 100644 --- a/libmachdev/ds_routines.c +++ b/libmachdev/ds_routines.c @@ -117,9 +117,11 @@ ds_device_open (mach_port_t open_port, mach_port_t reply_port, /* Fall back to opening kernel device master */ if (err) { - get_privileged_ports(NULL, &dev_master); - err = device_open (dev_master, mode, name, devp); - *devicePoly = MACH_MSG_TYPE_MOVE_SEND; + err = get_privileged_ports(NULL, &dev_master); + if (!err) + err = device_open (dev_master, mode, name, devp); + if (!err) + *devicePoly = MACH_MSG_TYPE_MOVE_SEND; } return err; } diff --git a/libmachdev/trivfs_server.c b/libmachdev/trivfs_server.c index 979741d1..9c9f817d 100644 --- a/libmachdev/trivfs_server.c +++ b/libmachdev/trivfs_server.c @@ -221,8 +221,14 @@ static void essential_task (void) { mach_port_t host, startup; + error_t err; - get_privileged_ports (&host, 0); + err = get_privileged_ports (&host, 0); + if (err) + { + mach_print ("WARNING: Cannot register as essential task\n"); + return; + } startup = file_name_lookup (_SERVERS_STARTUP, 0, 0); if (startup == MACH_PORT_NULL) { -- cgit v1.2.3