From 4d4c5aa6285aa055a4ec780ba47c180106f0926b Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 13 Sep 2011 14:42:10 -0400 Subject: Fix size return for split_on_separator() It was returning the size of the array, rather than the number of elements. (The array was NULL-terminated). This argument was only used in one place that was actually working around this odd return value. --- src/providers/ldap/ldap_init.c | 10 +++++----- src/util/util.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/providers/ldap/ldap_init.c b/src/providers/ldap/ldap_init.c index c00c0a9d8..b4d844dec 100644 --- a/src/providers/ldap/ldap_init.c +++ b/src/providers/ldap/ldap_init.c @@ -55,7 +55,7 @@ struct bet_ops sdap_access_ops = { }; /* Please use this only for short lists */ -errno_t check_order_list_for_duplicates(char **list, size_t len, +errno_t check_order_list_for_duplicates(char **list, bool case_sensitive) { size_t c; @@ -285,20 +285,20 @@ int sssm_ldap_access_init(struct be_ctx *bectx, order = "filter"; } - ret = split_on_separator(access_ctx, order, ',', true, &order_list, - &order_list_len); + ret = split_on_separator(access_ctx, order, ',', true, + &order_list, &order_list_len); if (ret != EOK) { DEBUG(1, ("split_on_separator failed.\n")); goto done; } - ret = check_order_list_for_duplicates(order_list, order_list_len, false); + ret = check_order_list_for_duplicates(order_list, false); if (ret != EOK) { DEBUG(1, ("check_order_list_for_duplicates failed.\n")); goto done; } - if (order_list_len -1 > LDAP_ACCESS_LAST) { + if (order_list_len > LDAP_ACCESS_LAST) { DEBUG(1, ("Currently only [%d] different access rules are supported.\n")); ret = EINVAL; goto done; diff --git a/src/util/util.c b/src/util/util.c index 649d58ea6..b4b1b1243 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -133,7 +133,7 @@ int split_on_separator(TALLOC_CTX *mem_ctx, const char *str, list[l] = NULL; /* terminate list */ - if (size) *size = l + 1; + if (size) *size = l; *_list = list; return EOK; -- cgit