Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:GA
adcli.25819
0023-adenroll-use-_adcli_strv_add_unique-for-se...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0023-adenroll-use-_adcli_strv_add_unique-for-service-prin.patch of Package adcli.25819
From 371cdbe4b003c8b70cd6a4060ef5637b341eee0f Mon Sep 17 00:00:00 2001 From: Sumit Bose <sbose@redhat.com> Date: Fri, 16 Nov 2018 13:32:59 +0100 Subject: [PATCH 23/25] adenroll: use _adcli_strv_add_unique for service principals Check if service principals is already in the list before adding it. Related to https://gitlab.freedesktop.org/realmd/adcli/issues/16 --- library/adenroll.c | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/library/adenroll.c b/library/adenroll.c index d23870a..53bd440 100644 --- a/library/adenroll.c +++ b/library/adenroll.c @@ -308,7 +308,6 @@ add_service_names_to_service_principals (adcli_enroll *enroll) char *name; int length = 0; int i; - size_t c; if (enroll->service_principals != NULL) { length = seq_count (enroll->service_principals); @@ -317,28 +316,14 @@ add_service_names_to_service_principals (adcli_enroll *enroll) for (i = 0; enroll->service_names[i] != NULL; i++) { if (asprintf (&name, "%s/%s", enroll->service_names[i], enroll->computer_name) < 0) return_unexpected_if_reached (); - for (c = 0; enroll->service_principals != NULL && enroll->service_principals[c] != NULL; c++) { - if (strcmp (name, enroll->service_principals[c]) == 0) { - break; - } - } - if (enroll->service_principals == NULL || enroll->service_principals[c] == NULL) { - enroll->service_principals = _adcli_strv_add (enroll->service_principals, - name, &length); - } + enroll->service_principals = _adcli_strv_add_unique (enroll->service_principals, + name, &length, false); if (enroll->host_fqdn) { if (asprintf (&name, "%s/%s", enroll->service_names[i], enroll->host_fqdn) < 0) return_unexpected_if_reached (); - for (c = 0; enroll->service_principals != NULL && enroll->service_principals[c] != NULL; c++) { - if (strcmp (name, enroll->service_principals[c]) == 0) { - break; - } - } - if (enroll->service_principals == NULL || enroll->service_principals[c] == NULL) { - enroll->service_principals = _adcli_strv_add (enroll->service_principals, - name, &length); - } + enroll->service_principals = _adcli_strv_add_unique (enroll->service_principals, + name, &length, false); } } @@ -359,9 +344,9 @@ add_and_remove_service_principals (adcli_enroll *enroll) list = adcli_enroll_get_service_principals_to_add (enroll); if (list != NULL) { for (c = 0; list[c] != NULL; c++) { - enroll->service_principals = _adcli_strv_add (enroll->service_principals, - strdup (list[c]), - &length); + enroll->service_principals = _adcli_strv_add_unique (enroll->service_principals, + strdup (list[c]), + &length, false); if (enroll->service_principals == NULL) { return ADCLI_ERR_UNEXPECTED; } @@ -1520,7 +1505,7 @@ load_keytab_entry (krb5_context k5, value = strdup (name); return_val_if_fail (value != NULL, FALSE); _adcli_info ("Found service principal in keytab: %s", value); - enroll->service_principals = _adcli_strv_add (enroll->service_principals, value, NULL); + enroll->service_principals = _adcli_strv_add_unique (enroll->service_principals, value, NULL, false); } } -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor