Use infinite timeout when using LDAP+start-TLS
This will ensure that the TLS connection to the LDAP server will complete
before starting FreeRADIUS, as it forces libldap to use a blocking socket during
the process. Infinite timeout is the OpenLDAP default.
Avoids this: 87ffc60006/libraries/libldap/tls2.c (L1134)
Related: #1983063
Signed-off-by: Antonio Torres <antorres@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									49e8c0620e
								
							
						
					
					
						commit
						bb772e884b
					
				
							
								
								
									
										31
									
								
								freeradius-ldap-infinite-timeout-on-starttls.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								freeradius-ldap-infinite-timeout-on-starttls.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | From: Antonio Torres <antorres@redhat.com> | ||||||
|  | Date: Fri, 28 Jan 2022 | ||||||
|  | Subject: Use infinite timeout when using LDAP+start-TLS | ||||||
|  | 
 | ||||||
|  | This will ensure that the TLS connection to the LDAP server will complete | ||||||
|  | before starting FreeRADIUS, as it forces libldap to use a blocking socket during  | ||||||
|  | the process. Infinite timeout is the OpenLDAP default. | ||||||
|  | Avoids this: https://git.openldap.org/openldap/openldap/-/blob/87ffc60006298069a5a044b8e63dab27a61d3fdf/libraries/libldap/tls2.c#L1134 | ||||||
|  | 
 | ||||||
|  | Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1992551 | ||||||
|  | Signed-off-by: Antonio Torres <antorres@redhat.com> | ||||||
|  | ---
 | ||||||
|  |  src/modules/rlm_ldap/ldap.c | 5 ++++- | ||||||
|  |  1 file changed, 4 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/modules/rlm_ldap/ldap.c b/src/modules/rlm_ldap/ldap.c
 | ||||||
|  | index cf7a84e069..841bf888a1 100644
 | ||||||
|  | --- a/src/modules/rlm_ldap/ldap.c
 | ||||||
|  | +++ b/src/modules/rlm_ldap/ldap.c
 | ||||||
|  | @@ -1472,7 +1472,10 @@ void *mod_conn_create(TALLOC_CTX *ctx, void *instance)
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  #ifdef LDAP_OPT_NETWORK_TIMEOUT | ||||||
|  | -	if (inst->net_timeout) {
 | ||||||
|  | +	bool using_tls = inst->start_tls ||
 | ||||||
|  | +					 inst->port == 636 ||
 | ||||||
|  | +					 strncmp(inst->server, "ldaps://", strlen("ldaps://")) == 0;
 | ||||||
|  | +	if (inst->net_timeout && !using_tls) {
 | ||||||
|  |  		memset(&tv, 0, sizeof(tv)); | ||||||
|  |  		tv.tv_sec = inst->net_timeout; | ||||||
|  |   | ||||||
| @ -1,7 +1,7 @@ | |||||||
| Summary: High-performance and highly configurable free RADIUS server | Summary: High-performance and highly configurable free RADIUS server | ||||||
| Name: freeradius | Name: freeradius | ||||||
| Version: 3.0.25 | Version: 3.0.25 | ||||||
| Release: 3%{?dist} | Release: 4%{?dist} | ||||||
| License: GPLv2+ and LGPLv2+ | License: GPLv2+ and LGPLv2+ | ||||||
| URL: http://www.freeradius.org/ | URL: http://www.freeradius.org/ | ||||||
| 
 | 
 | ||||||
| @ -25,6 +25,7 @@ Patch2: freeradius-Use-system-crypto-policy-by-default.patch | |||||||
| Patch3: freeradius-bootstrap-create-only.patch | Patch3: freeradius-bootstrap-create-only.patch | ||||||
| Patch4: freeradius-no-buildtime-cert-gen.patch | Patch4: freeradius-no-buildtime-cert-gen.patch | ||||||
| Patch5: freeradius-bootstrap-make-permissions.patch | Patch5: freeradius-bootstrap-make-permissions.patch | ||||||
|  | Patch6: freeradius-ldap-infinite-timeout-on-starttls.patch | ||||||
| 
 | 
 | ||||||
| %global docdir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} | %global docdir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} | ||||||
| 
 | 
 | ||||||
| @ -207,6 +208,7 @@ This plugin provides the REST support for the FreeRADIUS server project. | |||||||
| %patch3 -p1 | %patch3 -p1 | ||||||
| %patch4 -p1 | %patch4 -p1 | ||||||
| %patch5 -p1 | %patch5 -p1 | ||||||
|  | %patch6 -p1 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| # Force compile/link options, extra security for network facing daemon | # Force compile/link options, extra security for network facing daemon | ||||||
| @ -897,6 +899,10 @@ exit 0 | |||||||
| %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/rest | %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/rest | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Apr 22 2022 Antonio Torres <antorres@redhat.com> - 3.0.25-4 | ||||||
|  | - Use infinite timeout when using LDAP+start-TLS | ||||||
|  |   Related: #1983063 | ||||||
|  | 
 | ||||||
| * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.25-3 | * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.25-3 | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild | - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user