mirror of
http://cgit.git.savannah.gnu.org/git/grub.git
synced 2026-04-28 06:33:17 +00:00
osdep/aros/hostdisk: Fix use-after-free bug during MsgPort deletion
... in function grub_util_fd_open() when creation of an I/O request or opening a device fails. The "ret", the file descriptor, will be freed before its associated MsgPort is deleted resulting in a use-after-free condition. Fix this issue by freeing "ret" after its associated MsgPort has been deleted. Signed-off-by: Srish Srinivasan <ssrish@linux.ibm.com> Reviewed-by: Avnish Chouhan <avnish@linux.ibm.com> Reviewed-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
committed by
Daniel Kiper
parent
18f08826f9
commit
caaf50b9af
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user