PR/60403 CVS commit: [netbsd-11] src/sbin/efi
"Martin Husemann" <[email protected]>
| Newsgroups | gmane.os.netbsd.bugs |
|---|---|
| Message-ID | <[email protected]> |
The following reply was made to PR bin/60403; it has been noted by GNATS. From: "Martin Husemann" <[email protected]> To: [email protected] Cc: Subject: PR/60403 CVS commit: [netbsd-11] src/sbin/efi Date: Sun, 5 Jul 2026 07:34:58 +0000 Module Name: src Committed By: martin Date: Sun Jul 5 07:34:58 UTC 2026 Modified Files: src/sbin/efi [netbsd-11]: devpath.c Log Message: Pull up following revision(s) (requested by kre in ticket #366): sbin/efi/devpath.c: revision 1.2 PR bin/60403 : sbin/efi - fix core dump from assert in devpath assert(3) should never be used to validate data from external sources, only to validate assumptions about how the code itself works. Worse here, the assert() wasn't even validating that the externally sourced data was correctly formed, which it was; it was just in a format that wasn't common, and wasn't expected. What the output should be (the textual representation of the variable value) is unknown to me, I haven't been able to locate anything in the EFI standard which says (or even gives an example of the case in question). It might be there though somewhere I haven't found yet. The unusual case is when a variable which contains a path, like: Boot0000* NetBSD HD(3,GPT,d439564b-f7e4-4f92-b6ae-2fa0c33632f2,0x400,0x7f800)/ File(\EFI\BOOT\BOOTX64.EFI) (divided into two lines here for the e-mail) contains other data as well, in a similar format to the HD() string. Such things can be used to load filesystem code, drivers, and more, if needed. They are uncommon for sure. What the format should be, I don't know - for this commit simply run the paths together, in an earlier version I used a ';' as a separator, but I can't find any justification, beyond personal whim for that one. There could also be a space, or ... To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.1.2.1 src/sbin/efi/devpath.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.