Skip to content

Commit 655df15

Browse files
committed
more constify X509_NAME, X509 pointers, PoC to fix OpenSSL 4.0 at the cost of breaking < 4.0.
1 parent af2e9ec commit 655df15

6 files changed

Lines changed: 13 additions & 13 deletions

File tree

modules/ssl/ssl_engine_kernel.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,7 +1263,7 @@ int ssl_hook_UserCheck(request_rec *r)
12631263
}
12641264

12651265
if (!sslconn->client_dn) {
1266-
X509_NAME *name = X509_get_subject_name(sslconn->client_cert);
1266+
const X509_NAME *name = X509_get_subject_name(sslconn->client_cert);
12671267
char *cp = X509_NAME_oneline(name, NULL, 0);
12681268
sslconn->client_dn = apr_pstrdup(r->connection->pool, cp);
12691269
OPENSSL_free(cp);
@@ -1817,7 +1817,7 @@ int ssl_callback_proxy_cert(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
18171817
server_rec *s = mySrvFromConn(c);
18181818
SSLSrvConfigRec *sc = mySrvConfig(s);
18191819
SSLDirConfigRec *dc = myDirConfigFromConn(c);
1820-
X509_NAME *ca_name, *issuer, *ca_issuer;
1820+
const X509_NAME *ca_name, *issuer, *ca_issuer;
18211821
X509_INFO *info;
18221822
X509 *ca_cert;
18231823
STACK_OF(X509_NAME) *ca_list;

modules/ssl/ssl_engine_log.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ void ssl_log_ssl_error(const char *file, int line, int level, server_rec *s)
126126
static void ssl_log_cert_error(const char *file, int line, int level,
127127
apr_status_t rv, const server_rec *s,
128128
const conn_rec *c, const request_rec *r,
129-
apr_pool_t *p, X509 *cert, const char *format,
129+
apr_pool_t *p, const X509 *cert, const char *format,
130130
va_list ap)
131131
{
132132
char buf[HUGE_STRING_LEN];
@@ -212,7 +212,7 @@ static void ssl_log_cert_error(const char *file, int line, int level,
212212
* in the other cases we use the connection and request pool, respectively).
213213
*/
214214
void ssl_log_xerror(const char *file, int line, int level, apr_status_t rv,
215-
apr_pool_t *ptemp, server_rec *s, X509 *cert,
215+
apr_pool_t *ptemp, server_rec *s, const X509 *cert,
216216
const char *fmt, ...)
217217
{
218218
if (APLOG_IS_LEVEL(s,level)) {
@@ -225,7 +225,7 @@ void ssl_log_xerror(const char *file, int line, int level, apr_status_t rv,
225225
}
226226

227227
void ssl_log_cxerror(const char *file, int line, int level, apr_status_t rv,
228-
conn_rec *c, X509 *cert, const char *fmt, ...)
228+
conn_rec *c, const X509 *cert, const char *fmt, ...)
229229
{
230230
if (APLOG_IS_LEVEL(mySrvFromConn(c),level)) {
231231
va_list ap;
@@ -237,7 +237,7 @@ void ssl_log_cxerror(const char *file, int line, int level, apr_status_t rv,
237237
}
238238

239239
void ssl_log_rxerror(const char *file, int line, int level, apr_status_t rv,
240-
request_rec *r, X509 *cert, const char *fmt, ...)
240+
request_rec *r, const X509 *cert, const char *fmt, ...)
241241
{
242242
if (APLOG_R_IS_LEVEL(r,level)) {
243243
va_list ap;

modules/ssl/ssl_engine_vars.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@ static const char *ssl_var_lookup_ssl_cert_rfc4523_cea(apr_pool_t *p, SSL *ssl)
929929

930930
serialNumber = X509_get_serialNumber(xs);
931931
if (serialNumber) {
932-
X509_NAME *issuer = X509_get_issuer_name(xs);
932+
const X509_NAME *issuer = X509_get_issuer_name(xs);
933933
if (issuer) {
934934
BIGNUM *bn = ASN1_INTEGER_to_BN(serialNumber, NULL);
935935
if((decimal = BN_bn2dec(bn)) == NULL) {

modules/ssl/ssl_private.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,16 +1212,16 @@ void ssl_log_ssl_error(const char *, int, int, server_rec *);
12121212
* counterparts. */
12131213
void ssl_log_xerror(const char *file, int line, int level,
12141214
apr_status_t rv, apr_pool_t *p, server_rec *s,
1215-
X509 *cert, const char *format, ...)
1215+
const X509 *cert, const char *format, ...)
12161216
__attribute__((format(printf,8,9)));
12171217

12181218
void ssl_log_cxerror(const char *file, int line, int level,
1219-
apr_status_t rv, conn_rec *c, X509 *cert,
1219+
apr_status_t rv, conn_rec *c, const X509 *cert,
12201220
const char *format, ...)
12211221
__attribute__((format(printf,7,8)));
12221222

12231223
void ssl_log_rxerror(const char *file, int line, int level,
1224-
apr_status_t rv, request_rec *r, X509 *cert,
1224+
apr_status_t rv, request_rec *r, const X509 *cert,
12251225
const char *format, ...)
12261226
__attribute__((format(printf,7,8)));
12271227

modules/ssl/ssl_util_ssl.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ char *modssl_X509_NAME_ENTRY_to_string(apr_pool_t *p, X509_NAME_ENTRY *xsne,
236236
* convert an X509_NAME to an RFC 2253 formatted string, optionally truncated
237237
* to maxlen characters (specify a maxlen of 0 for no length limit)
238238
*/
239-
char *modssl_X509_NAME_to_string(apr_pool_t *p, X509_NAME *dn, int maxlen)
239+
char *modssl_X509_NAME_to_string(apr_pool_t *p, const X509_NAME *dn, int maxlen)
240240
{
241241
char *result = NULL;
242242
BIO *bio;
@@ -373,7 +373,7 @@ BOOL modssl_X509_getSAN(apr_pool_t *p, X509 *x509, int type, const char *onf,
373373
/* return an array of (RFC 6125 coined) DNS-IDs and CN-IDs in a certificate */
374374
static BOOL getIDs(apr_pool_t *p, X509 *x509, apr_array_header_t **ids)
375375
{
376-
X509_NAME *subj;
376+
const X509_NAME *subj;
377377
int i = -1;
378378

379379
/* First, the DNS-IDs (dNSName entries in the subjectAltName extension) */

modules/ssl/ssl_util_ssl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ int modssl_smart_shutdown(SSL *ssl);
7373
BOOL modssl_X509_getBC(X509 *, int *, int *);
7474
char *modssl_X509_NAME_ENTRY_to_string(apr_pool_t *p, X509_NAME_ENTRY *xsne,
7575
int raw);
76-
char *modssl_X509_NAME_to_string(apr_pool_t *, X509_NAME *, int);
76+
char *modssl_X509_NAME_to_string(apr_pool_t *, const X509_NAME *, int);
7777
BOOL modssl_X509_getSAN(apr_pool_t *, X509 *, int, const char *, int, apr_array_header_t **);
7878
BOOL modssl_X509_match_name(apr_pool_t *, X509 *, const char *, BOOL, server_rec *);
7979
char *modssl_SSL_SESSION_id2sz(IDCONST unsigned char *, int, char *, int);

0 commit comments

Comments
 (0)