ACK: [PATCH] efiruntime: getnextvariablename update the VariableNameSize before return when get EFI_BUFFER_TOO_SMALL

Colin Ian King colin.king at canonical.com
Mon Apr 1 10:31:59 UTC 2013


On 01/04/13 10:36, Ivan Hu wrote:
> The UEFI variable test on fwts, we test the getnextvariable implementation that
> when EFI_BUFFER_TOO_SMALL error occurs, the VariableNameSize is updated to
> reflect the size of buffer needed.
> When EFI_BUFFER_TOO_SMALL error occurs, efi_runtime need to first update the the
> VariableNameSize, then return error code. so move the return error code later than update code.
> 
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
>  efi_runtime/efi_runtime.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/efi_runtime/efi_runtime.c b/efi_runtime/efi_runtime.c
> index 9440aae..db4a465 100644
> --- a/efi_runtime/efi_runtime.c
> +++ b/efi_runtime/efi_runtime.c
> @@ -256,8 +256,6 @@ static long efi_runtime_ioctl(struct file *file, unsigned int cmd,
>  								&vendor);
>  		if (put_user(status, pgetnextvariablename->status))
>  			return -EFAULT;
> -		if (status != EFI_SUCCESS)
> -			return -EINVAL;
>  		convert_to_guid(&vendor, &vendor_guid);
>  
>  		if (put_user(name_size, pgetnextvariablename->VariableNameSize))
> @@ -266,6 +264,8 @@ static long efi_runtime_ioctl(struct file *file, unsigned int cmd,
>  		if (copy_to_user(pgetnextvariablename->VendorGuid,
>  						&vendor_guid, sizeof(EFI_GUID)))
>  			return -EFAULT;
> +		if (status != EFI_SUCCESS)
> +			return -EINVAL;
>  		return 0;
>  
>  	case EFI_RUNTIME_QUERY_VARIABLEINFO:
> 
Acked-by: Colin Ian King <colin.king at canonical.com>




More information about the fwts-devel mailing list