On Sat, Apr 09, 2016 at 07:01:50AM +0300, Andrei Borzenkov wrote: > 08.04.2016 09:43, Michael Chang пишет: > > In grub_file_open the file handle returned by file filters has no file->name > > set which leads to segmentation fault later referenced by grub_elf_file. We > > move the file->name value assignment after file filters to make sure it > > will be > > set and returned. > > > > This now makes filename unavailable to progress module (which gets the > last grub_file in a chain) and it still does not cover corner case of > failing grub_strdup in grub_file_open.
I don't get why the filename would, in the other way round to this patch trying to fix, become unavailable to progress module? As far as I see the file progress read hook in grub_file_read would use the file handle returned from grub_file_open and do not hold another chaining of opened files .. About covering the grub_strdup failure, the patch didn't do because it's not the cause for the segfault so leaving it as it is, if you think it necessary we can handle the error by returning null handle of course. > > Fixing the former requires some redesign. But as long as we allow > filename to remain empty in grub_file_open every user must explicitly > check for it being NULL. For what reason the filename returned by grub_file_open would be empty and how to know it reasonable from the user ? Adding the check is fine, but still a bug to me a filename is provided during grub_file_open but get ditched in returned handle without a reason. Thanks, Michael _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel