URL:
<http://savannah.gnu.org/bugs/?52007>
Summary: errno not correctly managed in grub_file_open
(kern/file.c)
Project: GNU GRUB
Submitted by: cedric_nokia
Submitted on: Wed 13 Sep 2017 07:53:36 AM UTC
Category: Filesystem
Severity: Major
Priority: 5 - Normal
Item Group: Software Error
Status: None
Privacy: Public
Assigned to: None
Originator Name: Cedric
Originator Email: [email protected]
Open/Closed: Open
Discussion Lock: Any
Release:
Release: 2.02
Reproducibility: Every Time
Planned Release: None
_______________________________________________________
Details:
In function grub_file_open(), grub_errno is used without been initialized
before the call to grub_file_get_device_name().
Unfortunately, the NULL return value of grub_file_get_device_name() can be a
valid result. So it doesn't allow to know if an error has occurred inside it.
And by consequence, we don't know if grub_errno must be tested or not.
Reproducible: call a function that set grub_errno to an error value then
call grub_file_open with a valid file.
Fix: grub_errno should be reset before the call to
grub_file_get_device_name().
BR, Cedric.
-------------------------------------------
grub_file_open (const char *name)
{
grub_device_t device = 0;
grub_file_t file = 0, last_file = 0;
char *device_name;
const char *file_name;
grub_file_filter_id_t filter;
device_name = grub_file_get_device_name (name);
if (grub_errno)
goto fail;
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?52007>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-grub mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-grub