Blob Blame History Raw
From a64cce9830c2e9c26e120f671b247ee71b45c888 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose@redhat.com>
Date: Fri, 12 Apr 2019 17:31:41 +0200
Subject: [PATCH] library: add missing strdup

In add_server_side_service_principals _adcli_strv_add_unique is called
which only adds a string to a list without copying to. Since the
original list will be freed later the value must be copied.

This issue was introduce with 972f1a2f35829ed89f5353bd204683aa9ad6a2d2
and hence

Related to https://bugzilla.redhat.com/show_bug.cgi?id=1630187
---
 library/adenroll.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/library/adenroll.c b/library/adenroll.c
index 1cce86a..52aa8a8 100644
--- a/library/adenroll.c
+++ b/library/adenroll.c
@@ -1987,7 +1987,8 @@ add_server_side_service_principals (adcli_enroll *enroll)
 		_adcli_info ("Checking %s", spn_list[c]);
 		if (!_adcli_strv_has_ex (enroll->service_principals_to_remove, spn_list[c], strcasecmp)) {
 			enroll->service_principals = _adcli_strv_add_unique (enroll->service_principals,
-		                                                             spn_list[c], &length, false);
+			                                                     strdup (spn_list[c]),
+			                                                     &length, false);
 			assert (enroll->service_principals != NULL);
 			_adcli_info ("   Added %s", spn_list[c]);
 		}
-- 
2.20.1