Page MenuHomeFreeBSD

efivar: Attempt to fix setting/printing/deleting EFI vars with '-' in their name
ClosedPublic

Authored by imp on Apr 7 2021, 5:59 AM.
Tags
None
Referenced Files
F105992561: D29620.diff
Mon, Dec 23, 2:35 PM
Unknown Object (File)
Thu, Dec 12, 6:14 AM
Unknown Object (File)
Thu, Dec 5, 7:19 PM
Unknown Object (File)
Mon, Dec 2, 8:25 PM
Unknown Object (File)
Nov 7 2024, 7:17 AM
Unknown Object (File)
Oct 25 2024, 4:59 PM
Unknown Object (File)
Oct 25 2024, 4:42 PM
Unknown Object (File)
Oct 18 2024, 11:24 AM
Subscribers
None

Details

Summary

Due to how we're parsing UUIDs, we were disallowing setting, printing or
deleting any UEFI variable with a '-' in it when you attempted to do that
operation with the exact name (wildcard reporting was unaffected). Fix the
parser to loop over all the dashes in the name and only give up when all
possible matches are exhausted.

PR: 251025

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

imp requested review of this revision.Apr 7 2021, 5:59 AM
imp created this revision.

Better error message with full name.

markj added inline comments.
usr.sbin/efivar/efivar.c
139

If you instead write if (efi_name_to_guid(name, guid) >= 0) break;, you can get rid of the again flag variable.

BTW, efi_name_to_guid(3) is documented as unimplemented. :)

This revision is now accepted and ready to land.Apr 7 2021, 1:24 PM

Address markj's comments

This revision now requires review to proceed.Apr 8 2021, 10:17 PM
This revision is now accepted and ready to land.Apr 9 2021, 1:52 PM