Mikhail Karpov, le lun. 02 nov. 2026 10:44:35 +0700, a ecrit: > This is a small patch that adds a NULL check for childp in proc/mgt.c.
Applied, thanks! > I’m not entirely certain, but perhaps it would be better not to return the > result from mach_notify_new_task immediately; instead, one should first > check > for an error, and if one exists, dealloc the task and call deref on childp. I'm not sure what you mean, do you mean to factorize the exit cases? Samuel > From b12bbcd88f26527e401d57d9c10f4488a0875f6a Mon Sep 17 00:00:00 2001 > From: Mikhail Karpov <[email protected]> > Date: Sun, 1 Nov 2026 13:58:51 +0700 > Subject: [PATCH 3/5] Added a NULL check for childp in proc/mgt.c > > --- > proc/mgt.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/proc/mgt.c b/proc/mgt.c > index c898d0d..4134943 100644 > --- a/proc/mgt.c > +++ b/proc/mgt.c > @@ -829,7 +829,10 @@ allocate_proc (task_t task) > > err = ports_create_port (proc_class, proc_bucket, sizeof (struct proc), > &p); > if (err) > - return NULL; > + { > + errno = err; > + return NULL; > + } > > memset (&p->p_pi + 1, 0, sizeof *p - sizeof p->p_pi); > p->p_task = task; > @@ -1412,6 +1415,13 @@ S_mach_notify_new_task (struct port_info *notify, > return err; > > childp = new_proc (task); > + if (! childp) > + { > + err = errno; > + mach_port_deallocate (mach_task_self (), task); > + return err; > + } > + > needs_task_dealloc = 1; > } > > @@ -1424,7 +1434,10 @@ S_mach_notify_new_task (struct port_info *notify, > if (err) > { > if (needs_task_dealloc) > - mach_port_deallocate (mach_task_self (), task); > + { > + ports_port_deref (childp); > + mach_port_deallocate (mach_task_self (), task); > + } > > return err; > } > -- > 2.43.0 > -- Samuel jr> J'ai fait. Ne bougez pas, l'aide soignante va venir nettoyer. -+- FF in GNU - Le vieil homme et la merde -+-
