That will be better initial the value of DataSize to zero for the input of
GetVariable(), otherwise we will feed a random value. The debug log of input
DataSize like this:
...
[  195.915612] EFI Variables Facility v0.08 2004-May-17
[  195.915819] efi: size: 
18446744071581821342
[  195.915969] efi:  size': 
18446744071581821342
[  195.916324] efi: size: 
18446612150714306560
[  195.916632] efi:  size': 
18446612150714306560
[  195.917159] efi: size: 
18446612150714306560
[  195.917453] efi:  size': 
18446612150714306560
...
The size' is value that was returned by BIOS.
After applied this patch:
[   82.442042] EFI Variables Facility v0.08 2004-May-17
[   82.442202] efi: size: 0
[   82.442360] efi:  size': 1039
[   82.443828] efi: size: 0
[   82.444127] efi:  size': 2616
[   82.447057] efi: size: 0
[   82.447356] efi:  size': 5832
...
Found on Acer Aspire V3 BIOS, it will not return the size of data if we input a
non-zero DataSize.
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
 
        }
 
        if (boot_used_size && !finished) {
-               unsigned long size;
+               unsigned long size = 0;
                u32 attr;
                efi_status_t s;
                void *tmp;