Fix error message handling in gp_config_from_dir()
This commit is contained in:
		
							parent
							
								
									70190ed7bb
								
							
						
					
					
						commit
						01020a3a93
					
				
							
								
								
									
										53
									
								
								Fix-error-message-handling-in-gp_config_from_dir.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								Fix-error-message-handling-in-gp_config_from_dir.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| From 05d65d68d0103ab4bc4b1bc64e4962dce6847c3e Mon Sep 17 00:00:00 2001 | ||||
| From: Robbie Harwood <rharwood@redhat.com> | ||||
| Date: Fri, 27 Oct 2017 14:39:35 -0400 | ||||
| Subject: [PATCH] Fix error message handling in gp_config_from_dir() | ||||
| 
 | ||||
| Resolves a potential double free if we ever get both a return value | ||||
| and error message back from ini_config_augment(). | ||||
| 
 | ||||
| Commit c0d85387fc38f9554d601ec2ddb111031a694387 exposes a misbehavior | ||||
| in libini wherein merge failures are presented as nonfatal errors. | ||||
| Paper around this. | ||||
| 
 | ||||
| Signed-off-by: Robbie Harwood <rharwood@redhat.com> | ||||
| (cherry picked from commit 49708ddde8c58d8197e1f7dfc2b2d097c6b278d5) | ||||
| ---
 | ||||
|  proxy/src/gp_config.c | 17 ++++++++++------- | ||||
|  1 file changed, 10 insertions(+), 7 deletions(-) | ||||
| 
 | ||||
| diff --git a/proxy/src/gp_config.c b/proxy/src/gp_config.c
 | ||||
| index f3ff1fd..d5db76a 100644
 | ||||
| --- a/proxy/src/gp_config.c
 | ||||
| +++ b/proxy/src/gp_config.c
 | ||||
| @@ -800,20 +800,23 @@ static int gp_config_from_dir(const char *config_dir,
 | ||||
|                               &error_list, | ||||
|                               NULL); | ||||
|      if (error_list) { | ||||
| -        uint32_t len;
 | ||||
| -        len = ref_array_len(error_list);
 | ||||
| +        uint32_t len = ref_array_len(error_list);
 | ||||
|          for (uint32_t i = 0; i < len; i++) { | ||||
|              /* libini has an unfixable bug where error strings are (char **) */ | ||||
| -            GPAUDIT("Error when reading config directory: %s\n",
 | ||||
| -                    *(char **)ref_array_get(error_list, i, NULL));
 | ||||
| +            char *errmsg = *(char **)ref_array_get(error_list, i, NULL);
 | ||||
| +
 | ||||
| +            /* libini reports pattern match failure as (non-fatal) error
 | ||||
| +             * https://pagure.io/SSSD/ding-libs/issue/3182 */
 | ||||
| +            if (strstr(errmsg, "did not match provided patterns. Skipping")) {
 | ||||
| +                continue;
 | ||||
| +            }
 | ||||
| +
 | ||||
| +            GPAUDIT("Error when reading config directory: %s\n", errmsg);
 | ||||
|          } | ||||
|          ref_array_destroy(error_list); | ||||
|      } | ||||
| -
 | ||||
|      if (ret && ret != EEXIST) { | ||||
|          GPERROR("Error when reading config directory number: %d\n", ret); | ||||
| -
 | ||||
| -        ref_array_destroy(error_list);
 | ||||
|          return ret; | ||||
|      } | ||||
|   | ||||
| @ -1,6 +1,6 @@ | ||||
| Name:		gssproxy | ||||
| Version:	0.7.0 | ||||
| Release:	22%{?dist} | ||||
| Release:	23%{?dist} | ||||
| Summary:	GSSAPI Proxy | ||||
| 
 | ||||
| Group:		System Environment/Libraries | ||||
| @ -37,6 +37,7 @@ Patch19: Fix-error-handling-in-gp_config_from_dir.patch | ||||
| Patch20: Fix-silent-crash-with-duplicate-config-sections.patch | ||||
| Patch21: Emit-debug-on-queue-errors.patch | ||||
| Patch22: Do-not-call-gpm_grab_sock-twice.patch | ||||
| Patch23: Fix-error-message-handling-in-gp_config_from_dir.patch | ||||
| 
 | ||||
| ### Dependencies ### | ||||
| Requires: krb5-libs >= 1.12.0 | ||||
| @ -134,6 +135,9 @@ rm -rf %{buildroot} | ||||
| %systemd_postun_with_restart gssproxy.service | ||||
| 
 | ||||
| %changelog | ||||
| * Mon Oct 30 2017 Robbie Harwood <rharwood@redhat.com> - 0.7.0-23 | ||||
| - Fix error message handling in gp_config_from_dir() | ||||
| 
 | ||||
| * Fri Oct 27 2017 Robbie Harwood <rharwood@redhat.com> - 0.7.0-22 | ||||
| - Fix concurrency issue in server socket handling | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user