Author: mw Date: Fri Feb 8 14:56:28 2019 New Revision: 343911 URL: https://svnweb.freebsd.org/changeset/base/343911
Log: Allow reading the UEFI variable size When loading bigger variables form UEFI it is necessary to know their size beforehand, so that an appropriate amount of memory can be allocated. The easiest way to do this is to try to read the variable with buffer size equal 0, expecting EFI_BUFFER_TOO_SMALL error to be returned. Allow such possible approach in efi_getenv routine. Extracted from a bigger patch as suggested by imp. Submitted by: Kornel Duleba <[email protected]> Obtained from: Semihalf Sponsored by: Stormshield Modified: head/stand/efi/libefi/efienv.c Modified: head/stand/efi/libefi/efienv.c ============================================================================== --- head/stand/efi/libefi/efienv.c Fri Feb 8 14:32:27 2019 (r343910) +++ head/stand/efi/libefi/efienv.c Fri Feb 8 14:56:28 2019 (r343911) @@ -48,7 +48,7 @@ efi_getenv(EFI_GUID *g, const char *v, void *data, siz return (EFI_OUT_OF_RESOURCES); dl = *len; rv = RS->GetVariable(uv, g, &attr, &dl, data); - if (rv == EFI_SUCCESS) + if (rv == EFI_SUCCESS || rv == EFI_BUFFER_TOO_SMALL) *len = dl; free(uv); return (rv); _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "[email protected]"
