Resolves: #2004143 - RFE: mod_ssl: allow sending multiple CA names which
differ only in case
This commit is contained in:
		
							parent
							
								
									c77124140b
								
							
						
					
					
						commit
						d826352e8c
					
				
							
								
								
									
										99
									
								
								httpd-2.4.48-r1825120.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								httpd-2.4.48-r1825120.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,99 @@ | ||||
| diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c
 | ||||
| index 4e2e80d..10a2c86 100644
 | ||||
| --- a/modules/ssl/ssl_engine_init.c
 | ||||
| +++ b/modules/ssl/ssl_engine_init.c
 | ||||
| @@ -2256,51 +2256,6 @@ int ssl_proxy_section_post_config(apr_pool_t *p, apr_pool_t *plog,
 | ||||
|      return OK; | ||||
|  } | ||||
|   | ||||
| -static int ssl_init_FindCAList_X509NameCmp(const X509_NAME * const *a,
 | ||||
| -                                           const X509_NAME * const *b)
 | ||||
| -{
 | ||||
| -    return(X509_NAME_cmp(*a, *b));
 | ||||
| -}
 | ||||
| -
 | ||||
| -static void ssl_init_PushCAList(STACK_OF(X509_NAME) *ca_list,
 | ||||
| -                                server_rec *s, apr_pool_t *ptemp,
 | ||||
| -                                const char *file)
 | ||||
| -{
 | ||||
| -    int n;
 | ||||
| -    STACK_OF(X509_NAME) *sk;
 | ||||
| -
 | ||||
| -    sk = (STACK_OF(X509_NAME) *)
 | ||||
| -             SSL_load_client_CA_file(file);
 | ||||
| -
 | ||||
| -    if (!sk) {
 | ||||
| -        return;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    for (n = 0; n < sk_X509_NAME_num(sk); n++) {
 | ||||
| -        X509_NAME *name = sk_X509_NAME_value(sk, n);
 | ||||
| -
 | ||||
| -        ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(02209)
 | ||||
| -                     "CA certificate: %s",
 | ||||
| -                     modssl_X509_NAME_to_string(ptemp, name, 0));
 | ||||
| -
 | ||||
| -        /*
 | ||||
| -         * note that SSL_load_client_CA_file() checks for duplicates,
 | ||||
| -         * but since we call it multiple times when reading a directory
 | ||||
| -         * we must also check for duplicates ourselves.
 | ||||
| -         */
 | ||||
| -
 | ||||
| -        if (sk_X509_NAME_find(ca_list, name) < 0) {
 | ||||
| -            /* this will be freed when ca_list is */
 | ||||
| -            sk_X509_NAME_push(ca_list, name);
 | ||||
| -        }
 | ||||
| -        else {
 | ||||
| -            /* need to free this ourselves, else it will leak */
 | ||||
| -            X509_NAME_free(name);
 | ||||
| -        }
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    sk_X509_NAME_free(sk);
 | ||||
| -}
 | ||||
|   | ||||
|  static apr_status_t ssl_init_ca_cert_path(server_rec *s, | ||||
|                                            apr_pool_t *ptemp, | ||||
| @@ -2324,7 +2279,7 @@ static apr_status_t ssl_init_ca_cert_path(server_rec *s,
 | ||||
|          } | ||||
|          file = apr_pstrcat(ptemp, path, "/", direntry.name, NULL); | ||||
|          if (ca_list) { | ||||
| -            ssl_init_PushCAList(ca_list, s, ptemp, file);
 | ||||
| +            SSL_add_file_cert_subjects_to_stack(ca_list, file);
 | ||||
|          } | ||||
|          if (xi_list) { | ||||
|              load_x509_info(ptemp, xi_list, file); | ||||
| @@ -2341,19 +2296,13 @@ STACK_OF(X509_NAME) *ssl_init_FindCAList(server_rec *s,
 | ||||
|                                           const char *ca_file, | ||||
|                                           const char *ca_path) | ||||
|  { | ||||
| -    STACK_OF(X509_NAME) *ca_list;
 | ||||
| -
 | ||||
| -    /*
 | ||||
| -     * Start with a empty stack/list where new
 | ||||
| -     * entries get added in sorted order.
 | ||||
| -     */
 | ||||
| -    ca_list = sk_X509_NAME_new(ssl_init_FindCAList_X509NameCmp);
 | ||||
| +    STACK_OF(X509_NAME) *ca_list = sk_X509_NAME_new_null();;
 | ||||
|   | ||||
|      /* | ||||
|       * Process CA certificate bundle file | ||||
|       */ | ||||
|      if (ca_file) { | ||||
| -        ssl_init_PushCAList(ca_list, s, ptemp, ca_file);
 | ||||
| +        SSL_add_file_cert_subjects_to_stack(ca_list, ca_file);
 | ||||
|          /* | ||||
|           * If ca_list is still empty after trying to load ca_file | ||||
|           * then the file failed to load, and users should hear about that. | ||||
| @@ -2377,11 +2326,6 @@ STACK_OF(X509_NAME) *ssl_init_FindCAList(server_rec *s,
 | ||||
|          return NULL; | ||||
|      } | ||||
|   | ||||
| -    /*
 | ||||
| -     * Cleanup
 | ||||
| -     */
 | ||||
| -    (void) sk_X509_NAME_set_cmp_func(ca_list, NULL);
 | ||||
| -
 | ||||
|      return ca_list; | ||||
|  } | ||||
|   | ||||
| @ -13,7 +13,7 @@ | ||||
| Summary: Apache HTTP Server | ||||
| Name: httpd | ||||
| Version: 2.4.48 | ||||
| Release: 17%{?dist} | ||||
| Release: 18%{?dist} | ||||
| URL: https://httpd.apache.org/ | ||||
| Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 | ||||
| Source1: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2.asc | ||||
| @ -91,6 +91,8 @@ Patch47: httpd-2.4.43-pr37355.patch | ||||
| Patch48: httpd-2.4.46-freebind.patch | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1950021 | ||||
| Patch49: httpd-2.4.48-ssl-proxy-chains.patch | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=2004143 | ||||
| Patch50: httpd-2.4.48-r1825120.patch | ||||
| 
 | ||||
| 
 | ||||
| # Bug fixes | ||||
| @ -254,6 +256,7 @@ written in the Lua programming language. | ||||
| %patch47 -p1 -b .pr37355 | ||||
| %patch48 -p1 -b .freebind | ||||
| %patch49 -p1 -b .ssl-proxy-chains | ||||
| %patch50 -p1 -b .r1825120 | ||||
| 
 | ||||
| %patch60 -p1 -b .enable-sslv3 | ||||
| %patch61 -p1 -b .htcacheclean-dont-break | ||||
| @ -806,6 +809,10 @@ exit $rv | ||||
| %{_rpmconfigdir}/macros.d/macros.httpd | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Sep 15 2021 Luboš Uhliarik <luhliari@redhat.com> - 2.4.48-18 | ||||
| - Resolves: #2004143 - RFE: mod_ssl: allow sending multiple CA names which | ||||
|   differ only in case | ||||
| 
 | ||||
| * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.4.48-17 | ||||
| - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags | ||||
|   Related: rhbz#1991688 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user