On Tue,  3 Jun 2025 01:03:05 -0400
Xiaoyao Li <xiaoyao...@intel.com> wrote:

> The error message is misleading - we successfully decoded the data,
> the decoded data was simply with the wrong length.
> 
> Change the error message to show it is an length check failure with both
> the received and expected values.
> 
> Suggested-by: Daniel P. Berrangé <berra...@redhat.com>
> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com>

Reviewed-by: Igor Mammedov <imamm...@redhat.com>

> ---
> Suggested by Daniel at 
> https://lore.kernel.org/qemu-devel/abzt3trdldan-...@redhat.com/
> ---
>  target/i386/kvm/tdx.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c
> index 17e671f1710f..4172bbd23340 100644
> --- a/target/i386/kvm/tdx.c
> +++ b/target/i386/kvm/tdx.c
> @@ -1026,7 +1026,9 @@ int tdx_pre_create_vcpu(CPUState *cpu, Error **errp)
>              return -1;
>          }
>          if (data_len != QCRYPTO_HASH_DIGEST_LEN_SHA384) {
> -            error_setg(errp, "TDX: failed to decode mrconfigid");
> +            error_setg(errp, "TDX 'mrconfigid' sha384 digest was %ld bytes, "
> +                             "expected %d bytes", data_len,
> +                             QCRYPTO_HASH_DIGEST_LEN_SHA384);
>              return -1;
>          }
>          memcpy(init_vm->mrconfigid, data, data_len);
> @@ -1039,7 +1041,9 @@ int tdx_pre_create_vcpu(CPUState *cpu, Error **errp)
>              return -1;
>          }
>          if (data_len != QCRYPTO_HASH_DIGEST_LEN_SHA384) {
> -            error_setg(errp, "TDX: failed to decode mrowner");
> +            error_setg(errp, "TDX 'mrowner' sha384 digest was %ld bytes, "
> +                             "expected %d bytes", data_len,
> +                             QCRYPTO_HASH_DIGEST_LEN_SHA384);
>              return -1;
>          }
>          memcpy(init_vm->mrowner, data, data_len);
> @@ -1052,7 +1056,9 @@ int tdx_pre_create_vcpu(CPUState *cpu, Error **errp)
>              return -1;
>          }
>          if (data_len != QCRYPTO_HASH_DIGEST_LEN_SHA384) {
> -            error_setg(errp, "TDX: failed to decode mrownerconfig");
> +            error_setg(errp, "TDX 'mrownerconfig' sha384 digest was %ld 
> bytes, "
> +                             "expected %d bytes", data_len,
> +                             QCRYPTO_HASH_DIGEST_LEN_SHA384);
>              return -1;
>          }
>          memcpy(init_vm->mrownerconfig, data, data_len);


Reply via email to