... 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>
sizeof(struct IOExtTD));
if (!ret->ioreq)
{
- free (ret);
DeleteMsgPort (ret->mp);
+ free (ret);
return NULL;
}
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);