stand: Unbreak FAT32 in loader
This corrects an issue introduced in b4cb3fe0e3
, where a freshly
allocated `DOS_FS` structure would not be initialized properly before
use in `dos_open`.
In case of FAT32 file systems, this would leave `fs->dirents`
uninitialized and - depending on its content and due to checks in
`parsebs` - prevent mounting the file system successfully.
This particularily impacted the EFI loader, as it was sometimes not
able to read files from a FAT32-formatted EFI partition, including
LoaderEnv (`/efi/freebsd/loader.env`).
Accepted by: imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D36482
This commit is contained in:
parent
b3b6a959c8
commit
0eb736c0f6
@ -321,7 +321,7 @@ dos_open(const char *path, struct open_file *fd)
|
||||
|
||||
if (mnt == NULL) {
|
||||
/* Allocate mount structure, associate with open */
|
||||
if ((fs = malloc(sizeof(DOS_FS))) == NULL)
|
||||
if ((fs = calloc(1, sizeof(DOS_FS))) == NULL)
|
||||
return (errno);
|
||||
if ((err = dos_mount_impl(fs, fd))) {
|
||||
free(fs);
|
||||
|
Loading…
Reference in New Issue
Block a user