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);