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

Alex Hung alex.hung at canonical.com
Mon Apr 1 15:02:34 UTC 2013


On 04/01/2013 05:36 PM, 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: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list