|
From: | Lidong Chen |
Subject: | Re: [PATCH 3/4] fs/hfsplus: Set grub errno to prevent NULL pointer access |
Date: | Tue, 25 Apr 2023 05:06:13 +0000 |
Thanks for the review. Here is the flow that causes invalid access to file->data in grub_file_close():
static struct grub_hfsplus_data * grub_hfsplus_mount (grub_disk_t disk) { data->catalog_tree.nodesize = grub_be_to_cpu16 (header.nodesize);
if (data->catalog_tree.nodesize < 2) goto fail; // grub_errno is not set to indicate the failure here.
fail: grub_free (data); return 0; } static grub_err_t grub_hfsplus_open (struct grub_file *file, const char *name) { data = "" (file->device->disk); if (!data) goto fail;
fail: grub_free (data);
return grub_errno; // return GRUB_ERR_NONE }
grub_file_t grub_file_open (const char *name, enum grub_file_type type) { if ((file->fs->fs_open) (file, file_name) != GRUB_ERR_NONE) // grub_hfsplus_open() goto fail;
file->name = grub_strdup (name); grub_errno = GRUB_ERR_NONE;
return file; }
static grub_err_t grub_hfsplus_close (grub_file_t file) { struct grub_hfsplus_data *data =""> (struct grub_hfsplus_data *) file->data;
grub_free (data->opened_file.cbuf); // SIGSEGV here
return GRUB_ERR_NONE; }
Regards, Lidong
|
[Prev in Thread] | Current Thread | [Next in Thread] |