Dear Maintainer, In Ubuntu, the attached patch fixes the FTBFS with OpenSSL 4 in the libpoe-filter-ssl-perl package. Thanks for considering the patch!
- Brent Kerby
Description: Use accessors on ASN1_STRING for OpenSSL 4 compatibility In OpenSSL 4, ASN1_STRING is an opaque type. The members `data` and `length` are no longer publicly visible, so accessor functions must be used instead. Author: Brent Kerby <[email protected]> Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=180181 Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libpoe-filter-ssl-perl/+bug/2154857 Bug-Debian: http://bugs.debian.org/1138310 Last-Update: 2026-07-21 =================================================================== --- a/SSL.xs +++ b/SSL.xs @@ -55,7 +55,7 @@ CODE: RETVAL = X509_get_serialNumber(cert); ST(0) = sv_newmortal(); /* Undefined to start with */ - sv_setpvn( ST(0), RETVAL->data, RETVAL->length); + sv_setpvn( ST(0), ASN1_STRING_get0_data(RETVAL), ASN1_STRING_length(RETVAL)); ASN1_INTEGER * POE_FILTER_verify_serial_against_crl_file(crlfile, serial) @@ -101,10 +101,10 @@ revoked = sk_X509_REVOKED_value(revokes, i); asn_ser = X509_REVOKED_get0_serialNumber(revoked); - if ( (asn_ser->length > 0) && - (asn_ser->length == lenser) && - (strncmp(asn_ser->data, serial, lenser) == 0)) { - sv_setpvn( ST(0), asn_ser->data, asn_ser->length); + if ( (ASN1_STRING_length(asn_ser) > 0) && + (ASN1_STRING_length(asn_ser) == lenser) && + (strncmp(ASN1_STRING_get0_data(asn_ser), serial, lenser) == 0)) { + sv_setpvn( ST(0), ASN1_STRING_get0_data(asn_ser), ASN1_STRING_length(asn_ser)); goto end; } }

