Re: [PATCH] aros/hostdisk: Fix use-after-free bug during MsgPort deletion
Avnish Chouhan <[email protected]> Tue, 09 Dec 2025 14:29:50 +0530
| Newsgroups | org.gnu.grub-devel |
|---|---|
| Message-ID | <[email protected]> |
On 2025-12-08 22:30, [email protected] wrote: > Message: 1 > Date: Mon, 8 Dec 2025 15:51:29 +0530 > From: Srish Srinivasan <[email protected]> > To: [email protected] > Cc: [email protected], [email protected], > [email protected], [email protected] > Subject: [PATCH] aros/hostdisk: Fix use-after-free bug during MsgPort > deletion > Message-ID: <[email protected]> > > Inside grub_util_fd_open, a failure while creating an IO > request or opening a device frees ret (the fd) before its > MsgPort is deleted. This leads to a use-after-free scenario. > > Fix this by freeing ret after its MsgPort has been deleted. Hi Srish, Suggestion on commit message: "In function grub_util_fd_open(), if creating an I/O request or opening a device fails. 'ret' (the file descriptor) will be freed before its associated MsgPort is deleted, resulting in a use-after-free condition. Fixing this issue by freeing 'ret' after its associated MsgPort has been deleted." > Signed-off-by: Srish Srinivasan <[email protected]> Reviewed-by: Avnish Chouhan <[email protected]> Regards, Avnish Chouhan > --- > grub-core/osdep/aros/hostdisk.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/grub-core/osdep/aros/hostdisk.c > b/grub-core/osdep/aros/hostdisk.c > index 08723bd45..c75474933 100644 > --- a/grub-core/osdep/aros/hostdisk.c > +++ b/grub-core/osdep/aros/hostdisk.c > @@ -207,8 +207,8 @@ grub_util_fd_open (const char *dev, int flg) > sizeof(struct IOExtTD)); > if (!ret->ioreq) > { > - free (ret); > DeleteMsgPort (ret->mp); > + free (ret); > return NULL; > } > > @@ -225,9 +225,9 @@ grub_util_fd_open (const char *dev, int flg) > if (OpenDevice ((unsigned char *) tmp, unit, > (struct IORequest *) ret->ioreq, flags)) > { > - free (tmp); > - free (ret); > DeleteMsgPort (ret->mp); > + free (ret); > + free (tmp); > return NULL; > } > free (tmp); > -- > 2.43.0 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel