On Wed, 17 Mar 2021 at 14:32, Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > (cc Matthew and Peter) > Now for real... (thanks Heinrich) > On Wed, 17 Mar 2021 at 08:35, Heinrich Schuchardt <xypron.glpk@xxxxxx> wrote: > > > > > > Hello Ard, > > > > in efivar_init() I read: > > > > /* > > * Per EFI spec, the maximum storage allocated for both > > * the variable name and variable data is 1024 bytes. > > */ > > > > do { > > variable_name_size = 1024; > > > > This dates back at least to Linux 2.5.0 of 23-Nov-2001 where in > > arch/ia64/kernel/efivars.c we have: > > > > /* > > * The maximum size of VariableName + Data = 1024 > > * Therefore, it's reasonable to save that much > > * space in each part of the structure, > > * and we use a page for reading/writing. > > */ > > > > I cannot find this 1024 byte size limit neither in UEFI spec 2.8B nor in > > EFI spec 1.1. > > > > Variable d719b2cb-3d3a-4596-a3bc-dad00e67656f-db has 5080 bytes of data > > on my laptop. > > > > It may not reasonable to use a variable name exceeding 512 UTF-16 > > characters. But shouldn't we handle this case gracefully in efivar_init()? > > > > This predates my involvement in EFI by a long time, so I've cc'ed > Peter and Matthew, who may be able to shed some light on this.