[SSSD] [PATCHES] krb5: new option krb5_map_user
Lukas Slebodnik
lslebodn at redhat.com
Wed Apr 29 17:00:26 UTC 2015
On (29/04/15 12:21), Pavel Reichl wrote:
>Hello,
>
>please see attached patches, thanks!
>From e824d4aa1051bf405243deb06cef1e05ed3ffd25 Mon Sep 17 00:00:00 2001
>From: Pavel Reichl <preichl at redhat.com>
>Date: Fri, 27 Feb 2015 11:37:50 -0500
>Subject: [PATCH 1/3] krb5: new option krb5_map_user
>
>New option `krb5_map_user` providing mapping of ID provider names to
>Kerberos principals.
>
>Resolves:
>https://fedorahosted.org/sssd/ticket/2509
>---
> src/config/SSSDConfig/__init__.py.in | 1 +
> src/config/SSSDConfigTest.py | 9 ++-
> src/config/etc/sssd.api.d/sssd-ad.conf | 1 +
> src/config/etc/sssd.api.d/sssd-ipa.conf | 1 +
> src/config/etc/sssd.api.d/sssd-krb5.conf | 1 +
> src/man/sssd-krb5.5.xml | 26 ++++++++
> src/providers/ad/ad_opts.h | 1 +
> src/providers/ipa/ipa_opts.h | 1 +
> src/providers/krb5/krb5_access.c | 4 +-
> src/providers/krb5/krb5_auth.c | 40 +++++++++++-
> src/providers/krb5/krb5_auth.h | 2 +
> src/providers/krb5/krb5_common.h | 9 +++
> src/providers/krb5/krb5_init_shared.c | 101 +++++++++++++++++++++++++++++++
> src/providers/krb5/krb5_opts.h | 1 +
> src/util/util.c | 56 +++++++++++++++++
> src/util/util.h | 6 ++
> 16 files changed, 254 insertions(+), 6 deletions(-)
>
>diff --git a/src/util/util.c b/src/util/util.c
>index 613c559bb2002686c7833642d0946e46e5a9b5d6..a3da6c51d2b92a529b03632a26b6e07569b5da77 100644
>--- a/src/util/util.c
>+++ b/src/util/util.c
>@@ -30,6 +30,62 @@
> #include "util/util.h"
> #include "util/sss_utf8.h"
>
>+errno_t split_str(TALLOC_CTX *mem_ctx,
>+ const char delimiter,
>+ char *str,
>+ char **_first,
>+ char **_second)
>+{
Why do we need new function split_str?
We already have function split_on_separator.
The function split_on_separator is tested unlike yours function.
I'm sorry but utility function without unit test(s) is automatic NACK.
You should even have thought about sending such patch. :-)
>+ char *sep;
>+ errno_t ret;
>+ char *first;
>+ char *second;
>+ TALLOC_CTX *tmp_ctx;
>+
>+ tmp_ctx = talloc_new(NULL);
>+ if (tmp_ctx == NULL) {
>+ ret = ENOMEM;
>+ goto done;
>+ }
>+
>+ sep = strchr(str, delimiter);
>+ if (sep == NULL) {
>+ ret = ENOENT;
>+ goto done;
>+ } else {
>+ if (sep == str) {
>+ first = NULL;
>+ } else {
>+ first = talloc_strndup(tmp_ctx, str, sep - str);
>+ if (first == NULL) {
>+ ret = ENOMEM;
>+ goto done;
>+ }
>+ }
>+
>+ if (*(sep + 1) == '\0') {
>+ second = NULL;
>+ } else {
>+ second = talloc_strdup(tmp_ctx, sep+1);
>+ if (second == NULL) {
>+ ret = ENOMEM;
>+ goto done;
>+ }
>+ }
>+ }
>+
>+ ret = EOK;
>+
>+done:
>+ if (ret == EOK) {
>+ *_first = talloc_steal(mem_ctx, first);
>+ *_second = talloc_steal(mem_ctx, second);
>+ }
>+
>+ talloc_free(tmp_ctx);
>+ return ret;
>+}
>+
> int split_on_separator(TALLOC_CTX *mem_ctx, const char *str,
> const char sep, bool trim, bool skip_empty,
> char ***_list, int *size)
>diff --git a/src/util/util.h b/src/util/util.h
>index 3c5ce295ec4ad2ad3c3a7ae0e7482c232db79746..479e24cabe947419cf9d63e803b1b662359ad38b 100644
>--- a/src/util/util.h
>+++ b/src/util/util.h
>@@ -408,6 +408,12 @@ const char * const * get_known_services(void);
>
> errno_t sss_user_by_name_or_uid(const char *input, uid_t *_uid, gid_t *_gid);
>
>+errno_t split_str(TALLOC_CTX *mem_ctx,
>+ const char delimiter,
>+ char *str,
>+ char **_first,
>+ char **_second);
>+
> int split_on_separator(TALLOC_CTX *mem_ctx, const char *str,
> const char sep, bool trim, bool skip_empty,
> char ***_list, int *size);
>--
>2.1.0
>
>From 50839ec51277cb9aa45c21b71bfb9dc5e8b0b553 Mon Sep 17 00:00:00 2001
>From: Pavel Reichl <preichl at redhat.com>
>Date: Wed, 29 Apr 2015 06:03:04 -0400
>Subject: [PATCH 2/3] krb5: remove field run_as_user
>
>run_as_user is set set but never read.
>---
LGTM
More information about the sssd-devel
mailing list