On Mon, Dec 27, 2021 at 10:54:13PM +1100, Simon Burge wrote:
> If you have a way of preproducing this, I'm happy to have a look.
I recall it now.
In src/sys/arch/i386/stand/efiboot/devopen.c
bios2dev(boot_biosdev, boot_biossector, &devname, &unit,
&partition, NULL);
In the same file, bios2dev() passes NULL part_name to biosdisk_findpartition()
void
bios2dev(int biosdev, daddr_t sector, char **devname, int *unit,
int *partition, const char **part_name)
{
(...)
(void)biosdisk_findpartition(biosdev, sector, partition, part_name);
In src/sys/arch/i386/stand/lib/biosdisk.c
int
biosdisk_findpartition(int biosdev, daddr_t sector,
int *partition, const char **part_name)
{
(...)
/* default ot first partition */
*partition = 0;
*part_name = NULL;
part_name is NULL, *part_name crashes. How do you avoid that?
--
Emmanuel Dreyfus
manu%netbsd.org@localhost