Applied, thanks! Mikhail Karpov, le mar. 20 oct. 2026 22:53:17 +0700, a ecrit: > Hello! > > In these places, the value returned by the mach_port_allocate function was > not checked. > > Thanks, > > -- > Mikhail Karpov
> From d93c5449c7ca8d72e9815d55a090b918f7fe14fc Mon Sep 17 00:00:00 2001 > From: Mikhail Karpov <[email protected]> > Date: Tue, 20 Oct 2026 22:06:27 +0700 > Subject: [PATCH 2/2] Added checks for mach_port_allocate return value in > several place > > --- > libnetfs/init-init.c | 6 ++++-- > lwip/main.c | 6 ++++-- > pfinet/main.c | 6 ++++-- > pflocal/io.c | 12 ++++++++++-- > term/users.c | 13 ++++++++++--- > trans/bogus-fifo.c | 6 +++++- > trans/symlink.c | 6 +++++- > 7 files changed, 42 insertions(+), 13 deletions(-) > > diff --git a/libnetfs/init-init.c b/libnetfs/init-init.c > index f64c7bb..1b06260 100644 > --- a/libnetfs/init-init.c > +++ b/libnetfs/init-init.c > @@ -48,6 +48,8 @@ netfs_init (void) > netfs_control_class = ports_create_class (0, 0); > netfs_port_bucket = ports_create_bucket (); > netfs_auth_server_port = getauth (); > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > - &netfs_fsys_identity); > + err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > + &netfs_fsys_identity); > + if (err) > + error (2, err, "mach_port_allocate"); > } > diff --git a/lwip/main.c b/lwip/main.c > index 0d92589..f52f80f 100644 > --- a/lwip/main.c > +++ b/lwip/main.c > @@ -205,8 +205,10 @@ main (int argc, char **argv) > socketport_class = ports_create_class (clean_socketport, 0); > lwip_bootstrap_portclass = PORTCLASS_INET; > > - mach_port_allocate (mach_task_self (), > - MACH_PORT_RIGHT_RECEIVE, &fsys_identity); > + err = mach_port_allocate (mach_task_self (), > + MACH_PORT_RIGHT_RECEIVE, &fsys_identity); > + if (err) > + error (1, err, "mach_port_allocate"); > > /* Init the device modules */ > hurdethif_module_init (); > diff --git a/pfinet/main.c b/pfinet/main.c > index cd50950..5d9a112 100644 > --- a/pfinet/main.c > +++ b/pfinet/main.c > @@ -296,8 +296,10 @@ main (int argc, > pfinet_bucket = ports_create_bucket (); > addrport_class = ports_create_class (clean_addrport, 0); > socketport_class = ports_create_class (clean_socketport, 0); > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > - &fsys_identity); > + err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > + &fsys_identity); > + if (err) > + error (1, err, "mach_port_allocate"); > > /* Generic initialization */ > > diff --git a/pflocal/io.c b/pflocal/io.c > index 6a85870..991917c 100644 > --- a/pflocal/io.c > +++ b/pflocal/io.c > @@ -335,8 +335,16 @@ S_io_stat (struct sock_user *user, struct stat *st) > pthread_mutex_lock (&sock->lock); /* Make sure the pipes don't go away... > */ > > if (sock->id == MACH_PORT_NULL) > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > - &sock->id); > + { > + error_t err = mach_port_allocate (mach_task_self (), > + MACH_PORT_RIGHT_RECEIVE, &sock->id); > + if (err) > + { > + pthread_mutex_unlock (&sock->lock); > + return err; > + } > + } > + > st->st_ino = sock->id; > > rpipe = sock->read_pipe; > diff --git a/term/users.c b/term/users.c > index 2b6db3b..445196a 100644 > --- a/term/users.c > +++ b/term/users.c > @@ -95,14 +95,21 @@ init_users (void) > if (err) > error (1, err, "Allocating cttyid"); > > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > - &async_icky_id); > + err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > + &async_icky_id); > + if (err) > + error (1, err, "mach_port_allocate"); > + > /* Add a send right, since hurd_sig_post needs one. */ > mach_port_insert_right (mach_task_self (), > async_icky_id, async_icky_id, > MACH_MSG_TYPE_MAKE_SEND); > > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, &async_id); > + err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > + &async_id); > + if (err) > + error (1, err, "mach_port_allocate"); > + > /* Add a send right, since hurd_sig_post needs one. */ > mach_port_insert_right (mach_task_self (), > async_id, async_id, MACH_MSG_TYPE_MAKE_SEND); > diff --git a/trans/bogus-fifo.c b/trans/bogus-fifo.c > index 3e1dd9e..86610c0 100644 > --- a/trans/bogus-fifo.c > +++ b/trans/bogus-fifo.c > @@ -53,7 +53,11 @@ main (int argc, char **argv) > error(3, 0, "Must be started as a translator"); > > /* Reply to our parent */ > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, &fsys); > + err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > + &fsys); > + if (err) > + error (1, err, "mach_port_allocate"); > + > err = fsys_startup (bootstrap, fsys, MACH_MSG_TYPE_MAKE_SEND, &realnode); > mach_port_deallocate (mach_task_self (), bootstrap); > if (err) > diff --git a/trans/symlink.c b/trans/symlink.c > index 0046378..05612db 100644 > --- a/trans/symlink.c > +++ b/trans/symlink.c > @@ -85,7 +85,11 @@ main (int argc, char **argv) > linktarget = argv[1]; > > /* Reply to our parent */ > - mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, &control); > + err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, > + &control); > + if (err) > + error (1, err, "mach_port_allocate"); > + > mach_port_insert_right (mach_task_self (), control, control, > MACH_MSG_TYPE_MAKE_SEND); > err = > -- > 2.43.0 > -- Samuel Client: "This program has been successfully installed." Vendeur (surpris): "Et où voyez-vous une erreur ?" Client: "C'est << HAS BEEN >> !"
