Page MenuHomeFreeBSD

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

Authored by imp on Wed, Apr 7, 5:59 AM.

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
R10 FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

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

Better error message with full name.

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

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.Wed, Apr 7, 1:24 PM

Address markj's comments

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