diff options
author | Sumit Bose <sbose@redhat.com> | 2012-09-05 14:08:02 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-09-05 14:20:40 +0200 |
commit | f8535d010213b9d5d3a9ac3049e9d3a74441e4cb (patch) | |
tree | d55f2c9c963d0c9ce474e8c70c8495db8a309c19 /daemons/ipa-kdb | |
parent | 1000bf076ef20bdbb1259ac989b3719a43ea8125 (diff) | |
download | freeipa.git-f8535d010213b9d5d3a9ac3049e9d3a74441e4cb.tar.gz freeipa.git-f8535d010213b9d5d3a9ac3049e9d3a74441e4cb.tar.xz freeipa.git-f8535d010213b9d5d3a9ac3049e9d3a74441e4cb.zip |
ipadb_iterate(): handle match_entry == NULL
If match_entry == NULL all principals should be iterated.
Additionally this patch adds a check in ipadb_filter_escape() to make
sure that the input is not NULL.
Fixes: https://fedorahosted.org/freeipa/ticket/3011
Diffstat (limited to 'daemons/ipa-kdb')
-rw-r--r-- | daemons/ipa-kdb/ipa_kdb_common.c | 4 | ||||
-rw-r--r-- | daemons/ipa-kdb/ipa_kdb_principals.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/daemons/ipa-kdb/ipa_kdb_common.c b/daemons/ipa-kdb/ipa_kdb_common.c index 6f5ac1d7..71df9634 100644 --- a/daemons/ipa-kdb/ipa_kdb_common.c +++ b/daemons/ipa-kdb/ipa_kdb_common.c @@ -30,6 +30,10 @@ char *ipadb_filter_escape(const char *input, bool star) size_t i = 0; size_t j = 0; + if (!input) { + return NULL; + } + /* Assume the worst-case. */ output = malloc(strlen(input) * 3 + 1); if (!output) { diff --git a/daemons/ipa-kdb/ipa_kdb_principals.c b/daemons/ipa-kdb/ipa_kdb_principals.c index 6f8b296f..62155816 100644 --- a/daemons/ipa-kdb/ipa_kdb_principals.c +++ b/daemons/ipa-kdb/ipa_kdb_principals.c @@ -1879,6 +1879,12 @@ krb5_error_code ipadb_iterate(krb5_context kcontext, return KRB5_KDB_DBNOTINITED; } + /* If no match_entry is given iterate through all krb princs like the db2 + * or ldap plugin */ + if (match_entry == NULL) { + match_entry = "*"; + } + /* fetch list of principal matching filter */ kerr = ipadb_fetch_principals(ipactx, 0, match_entry, &res); if (kerr != 0) { |