From: Khem Raj Date: Sun, 6 Sep 2026 20:05:00 -0700 Subject: [PATCH] tspi_asn1: use ASN1_STRING_get0_data() accessor OpenSSL 4.0 completes the opaquing of struct asn1_string_st, so reaching into ASN1_OCTET_STRING directly no longer compiles: src/tspi/tspi_asn1.c:240:33: error: incomplete definition of type 'ASN1_OCTET_STRING' (aka 'struct asn1_string_st') 240 | memcpy(rawBlob, tssBlob->blob->data, decBlobSize); | ~~~~~~~~~~~~~^ Use the ASN1_STRING_get0_data() accessor instead. It has been available since OpenSSL 1.1.0 and is the documented replacement for touching the ->data member; the rest of this file already goes through accessors (ASN1_INTEGER_get(), ASN1_OCTET_STRING_set()). No functional change. Upstream-Status: Inappropriate [upstream is dormant; git.code.sf.net master is still at 94144b0 "Bumped version to 0.3.15" from 2020-11-03, which is the SRCREV this recipe already pins] Signed-off-by: Khem Raj --- src/tspi/tspi_asn1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tspi/tspi_asn1.c b/src/tspi/tspi_asn1.c index f17ce41..14d216b 100644 --- a/src/tspi/tspi_asn1.c +++ b/src/tspi/tspi_asn1.c @@ -237,7 +237,8 @@ Tspi_DecodeBER_TssBlob(UINT32 berBlobSize, /* in */ if (*rawBlobSize != 0) { if (decBlobSize <= *rawBlobSize) { - memcpy(rawBlob, tssBlob->blob->data, decBlobSize); + memcpy(rawBlob, ASN1_STRING_get0_data(tssBlob->blob), + decBlobSize); } else { TSS_BLOB_free(tssBlob); -- 2.51.0