Author: brane
Date: Fri Jun 5 13:13:06 2026
New Revision: 1935028
Log:
Merge r1935023 from trunk, resolving conflicts.
Modified:
serf/branches/1.3.x-r1935023/ (props changed)
serf/branches/1.3.x-r1935023/SConstruct
serf/branches/1.3.x-r1935023/buckets/ssl_buckets.c
Modified: serf/branches/1.3.x-r1935023/SConstruct
==============================================================================
--- serf/branches/1.3.x-r1935023/SConstruct Fri Jun 5 13:11:55 2026
(r1935027)
+++ serf/branches/1.3.x-r1935023/SConstruct Fri Jun 5 13:13:06 2026
(r1935028)
@@ -430,9 +430,9 @@ env.Default(lib_static, lib_shared, pkgc
if CALLOUT_OKAY:
conf = Configure(env)
-
- ### some configuration stuffs
-
+ if not conf.CheckDeclaration('ASN1_STRING_get0_data',
+ '#include <openssl/asn1.h>', 'C'):
+ env.Append(CPPDEFINES=['SERF_NO_SSL_ASN1_STRING_GET0_DATA'])
env = conf.Finish()
Modified: serf/branches/1.3.x-r1935023/buckets/ssl_buckets.c
==============================================================================
--- serf/branches/1.3.x-r1935023/buckets/ssl_buckets.c Fri Jun 5 13:11:55
2026 (r1935027)
+++ serf/branches/1.3.x-r1935023/buckets/ssl_buckets.c Fri Jun 5 13:13:06
2026 (r1935028)
@@ -56,6 +56,9 @@
#define USE_OPENSSL_1_1_API
#endif
+#ifdef SERF_NO_SSL_ASN1_STRING_GET0_DATA
+#define ASN1_STRING_get0_data(asn1string) (ASN1_STRING_data(asn1string))
+#endif
/*
* Here's an overview of the SSL bucket's relationship to OpenSSL and serf.
@@ -566,14 +569,18 @@ get_subject_alt_names(apr_array_header_t
switch (nm->type) {
case GEN_DNS:
- if (copy_action == ErrorOnNul &&
- strlen(nm->d.ia5->data) != nm->d.ia5->length)
+ {
+ const char *const data =
+ (const char*)ASN1_STRING_get0_data(nm->d.ia5);
+ const int length = ASN1_STRING_length(nm->d.ia5);
+
+ if (copy_action == ErrorOnNul && strlen(data) != length)
return SERF_ERROR_SSL_CERT_FAILED;
if (san_arr && *san_arr)
- p = pstrdup_escape_nul_bytes((const char
*)nm->d.ia5->data,
- nm->d.ia5->length,
- pool);
+ p = pstrdup_escape_nul_bytes(data, length, pool);
+
break;
+ }
default:
/* Don't know what to do - skip. */
break;