summaryrefslogtreecommitdiffstats
path: root/lib/ldaputil/utest/auth.cpp
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2010-08-20 14:55:12 -0700
committerNoriko Hosoi <nhosoi@redhat.com>2010-08-20 14:55:12 -0700
commitd5b15931ee65d248ab43c9a7ba2fac44fec00c31 (patch)
treeaff17f314b07b1782c126b773f35b59ec7dad404 /lib/ldaputil/utest/auth.cpp
parenta44290a979169726afc380a9cce79bbba0adacde (diff)
downloadds-d5b15931ee65d248ab43c9a7ba2fac44fec00c31.tar.gz
ds-d5b15931ee65d248ab43c9a7ba2fac44fec00c31.tar.xz
ds-d5b15931ee65d248ab43c9a7ba2fac44fec00c31.zip
Bug 616500 - fix coverity Defect Type: Resource leaks issues
CID 12094 - 12136 https://bugzilla.redhat.com/show_bug.cgi?id=616500 coverity 12125 Comment: This function (ldapu_certinfo_save) is not used - just get rid of it Removing unused functions from lib/ldaputil/certmap.c ldapu_certinfo_save, ldapu_certinfo_modify, ldapu_certinfo_delete Also, removing obsolete test codes: lib/ldaputil/utest.
Diffstat (limited to 'lib/ldaputil/utest/auth.cpp')
-rw-r--r--lib/ldaputil/utest/auth.cpp611
1 files changed, 0 insertions, 611 deletions
diff --git a/lib/ldaputil/utest/auth.cpp b/lib/ldaputil/utest/auth.cpp
deleted file mode 100644
index 46be3a2b..00000000
--- a/lib/ldaputil/utest/auth.cpp
+++ /dev/null
@@ -1,611 +0,0 @@
-/** BEGIN COPYRIGHT BLOCK
- * This Program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation; version 2 of the License.
- *
- * This Program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * In addition, as a special exception, Red Hat, Inc. gives You the additional
- * right to link the code of this Program with code not covered under the GNU
- * General Public License ("Non-GPL Code") and to distribute linked combinations
- * including the two, subject to the limitations in this paragraph. Non-GPL Code
- * permitted under this exception must only link to the code of this Program
- * through those well defined interfaces identified in the file named EXCEPTION
- * found in the source code files (the "Approved Interfaces"). The files of
- * Non-GPL Code may instantiate templates or use macros or inline functions from
- * the Approved Interfaces without causing the resulting work to be covered by
- * the GNU General Public License. Only Red Hat, Inc. may make changes or
- * additions to the list of Approved Interfaces. You must obey the GNU General
- * Public License in all respects for all of the Program code and other code used
- * in conjunction with the Program except the Non-GPL Code covered by this
- * exception. If you modify this file, you may extend this exception to your
- * version of the file, but you are not obligated to do so. If you do not wish to
- * provide this exception without modification, you must delete this exception
- * statement from your version and license this file solely under the GPL without
- * exception.
- *
- *
- * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
- * Copyright (C) 2005 Red Hat, Inc.
- * All rights reserved.
- * END COPYRIGHT BLOCK **/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include <prinit.h> // for PR_Init
-#include <prpriv.h> // for PR_Exit
-#include <ldaputil/certmap.h>
-#include <ldaputil/init.h>
-#include <ldaputil/ldapdb.h>
-#include <ldaputil/ldapauth.h>
-#include <ldaputil/dbconf.h>
-#include <ldaputil/ldaputil.h>
-#include <ldap.h>
-
-static const char* dllname = "plugin.so";
-
-char *global_issuer_dn = "o=" VENDOR ", c=US";
-
-#define NSPR_INIT(Program) (PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 8))
-
-static int ldapu_certinfo_save_test (const char *fname, const char *old_fname)
-{
- int rv;
-
- /* Read the original certmap config file first */
- rv = ldaputil_init(old_fname, dllname, NULL, NULL, NULL);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_save_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- return rv;
- }
-
- rv = ldapu_certinfo_save(fname, old_fname, "certmap.tmp");
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_save_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- }
-
- return rv;
-}
-
-static int ldapu_certinfo_delete_test (const char *fname, const char *old_fname)
-{
- int rv;
-
- /* Read the original certmap config file first */
- rv = ldaputil_init(old_fname, dllname, NULL, NULL, NULL);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_delete_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- return rv;
- }
-
- /* rv = ldapu_certinfo_delete("o=Ace Industry, c=US"); */
- rv = ldapu_certinfo_delete("o=" VENDOR ", c=US");
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_delete failed. Reason: %s\n",
- ldapu_err2string(rv));
- return rv;
- }
-
- rv = ldapu_certinfo_save(fname, old_fname, "certmap.tmp");
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_delete_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- }
-
- return rv;
-}
-
-static int ldapu_certinfo_new_test (const char *fname, const char *old_fname)
-{
- int rv;
- LDAPUPropValList_t *propval_list;
- LDAPUPropVal_t *propval;
-
- /* Read the original certmap config file first */
- rv = ldaputil_init(old_fname, dllname, NULL, NULL, NULL);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_new_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- return rv;
- }
-
- /* Setup propval_list */
- rv = ldapu_list_alloc(&propval_list);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_propval_alloc("prop1", "val1", &propval);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_list_add_info(propval_list, propval);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_propval_alloc("prop2", "val2", &propval);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_list_add_info(propval_list, propval);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_propval_alloc("prop3", 0, &propval);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_list_add_info(propval_list, propval);
- if (rv != LDAPU_SUCCESS) return rv;
-
- rv = ldapu_certinfo_modify("newmap", "o=Mcom Communications, c=US",
- propval_list);
-
- ldapu_propval_list_free(propval_list);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_delete failed. Reason: %s\n",
- ldapu_err2string(rv));
- return rv;
- }
-
- rv = ldapu_certinfo_save(fname, old_fname, "certmap.tmp");
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "ldapu_certinfo_new_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- }
-
- return rv;
-}
-
-static int get_dbnames_test (const char *mapfile)
-{
- char **names;
- int cnt;
- int rv;
- int i;
-
- rv = dbconf_get_dbnames(mapfile, &names, &cnt);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "get_dbnames_test failed. Reason: %s\n",
- ldapu_err2string(rv));
- }
- else {
- for(i = 0; i < cnt; i++) {
- fprintf(stderr, "\tdbname[%d] = \"%s\"\n",
- i, names[i]);
- }
- }
-
- dbconf_free_dbnames(names);
-
- return rv;
-}
-
-static int case_ignore_strcmp (const char *s1, const char *s2)
-{
- int ls1, ls2; /* tolower values of chars in s1 & s2 resp. */
-
- if (!s1) return !s2 ? 0 : 0-tolower(*s2);
- else if (!s2) return tolower(*s1);
-
- while(*s1 && *s2 && (ls1 = tolower(*s1)) == (ls2 = tolower(*s2))) { s1++; s2++; }
-
- if (!*s1)
- return *s2 ? 0-tolower(*s2) : 0;
- else if (!*s2)
- return tolower(*s1);
- else
- return ls1 - ls2;
-}
-
-#define STRCASECMP3(s1, s2, rv) \
-{ \
- int i = case_ignore_strcmp(s1, s2); \
- fprintf(stderr, "strcasecmp(\"%s\", \"%s\")\t=\t%d\t%s\tExpected: %d\n", \
- s1 ? s1 : "<NULL>", s2 ? s2 : "<NULL>", \
- i, i == rv ? "SUCCESS" : "FAILED", rv); \
-}
-
-#ifndef XP_WIN32
-#define STRCASECMP(s1, s2) STRCASECMP3(s1, s2, strcasecmp(s1, s2))
-#else
-#define STRCASECMP(s1, s2) STRCASECMP3(s1, s2, case_ignore_strcmp(s1, s2))
-#endif
-
-static void strcasecmp_test ()
-{
- STRCASECMP3(0, "aBcD", 0-tolower('a'));
- STRCASECMP3(0, 0, 0);
- STRCASECMP3("aBcD", 0, tolower('a'));
-
- STRCASECMP("AbCd", "aBcD");
- STRCASECMP("AbCd", "abcd");
- STRCASECMP("ABCD", "ABCD");
- STRCASECMP("abcd", "abcd");
-
- STRCASECMP("AbCd", "aBcD3");
- STRCASECMP("AbCd", "abcd3");
- STRCASECMP("ABCD", "ABCD3");
- STRCASECMP("abcd", "abcd3");
-
- STRCASECMP("AbCd1", "aBcD");
- STRCASECMP("AbCd2", "abcd");
- STRCASECMP("ABCDX", "ABCD");
- STRCASECMP("abcdY", "abcd");
-
- STRCASECMP("AbCd5", "aBcD1");
- STRCASECMP("AbCd5", "abcd1");
- STRCASECMP("ABCD5", "ABCD1");
- STRCASECMP("abcd5", "abcd1");
-
- STRCASECMP("AbCd2", "aBcDp");
- STRCASECMP("AbCd2", "abcdQ");
- STRCASECMP("ABCD2", "ABCDr");
- STRCASECMP("abcd2", "abcdS");
-}
-
-static int certmap_tests (const char *config_file) { return 0; }
-
-static int read_config_test (const char *config_file, const char *dbname,
- const char *url,
- const char *binddn, const char *bindpw)
-{
- int rv;
- DBConfDBInfo_t *db_info;
- char *dn;
- char *pw;
-
- rv = dbconf_read_default_dbinfo(config_file, &db_info);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "config_test failed: %s\n",
- ldapu_err2string(rv));
- return LDAPU_FAILED;
- }
-
- if (strcmp(db_info->dbname, dbname) ||
- strcmp(db_info->url, url)) {
- fprintf(stderr, "config_test failed: %s\n",
- "first line in config file is wrong");
- return LDAPU_FAILED;
- }
-
- if ((ldapu_dbinfo_attrval(db_info, "binddn", &dn) != LDAPU_SUCCESS) ||
- (ldapu_dbinfo_attrval(db_info, "bindpw", &pw) != LDAPU_SUCCESS))
- {
- fprintf(stderr, "config_test failed: %s\n",
- "properties are missing");
- return LDAPU_FAILED;
- }
-
- if (strcmp(dn, binddn) ||
- strcmp(pw, bindpw)) {
- fprintf(stderr, "config_test failed: %s\n",
- "property values are wrong");
- return LDAPU_FAILED;
- }
-
- fprintf(stderr, "binddn from config file: \"%s\"\n", dn);
- fprintf(stderr, "bindpw from config file: \"%s\"\n", pw);
-
- /* cleanup */
- dbconf_free_dbinfo(db_info);
- free(dn);
- free(pw);
-
- return LDAPU_SUCCESS;
-}
-
-static int config_test (const char *binddn, const char *bindpw)
-{
- char *config_file = "config_out.conf";
- FILE *fp = fopen(config_file, "w");
- const char *dbname = "default";
- const char *url = "file:/foobar/path";
- int rv;
-
- if (!fp) return LDAPU_FAILED;
-
- dbconf_output_db_directive(fp, dbname, url);
- dbconf_output_propval(fp, dbname, "binddn", binddn, 0);
- dbconf_output_propval(fp, dbname, "bindpw", bindpw, 1);
-
- fclose(fp);
-
- fprintf(stderr, "Config file written: %s\n", config_file);
-
- rv = read_config_test(config_file, dbname, url, binddn, bindpw);
-
- return rv;
-}
-
-static int
-compare_groupid(const void *arg, const char *group, const int len)
-{
- auto const char* groupid = (const char*)arg;
- auto int err = LDAPU_FAILED;
- if (len == strlen (groupid) && !strncasecmp (groupid, group, len)) {
- err = LDAPU_SUCCESS;
- }
- return err;
-}
-
-static int
-compare_group(LDAP* directory, LDAPMessage* entry, void* set)
-{
- auto int err = LDAPU_FAILED;
- auto char** vals = ldap_get_values (directory, entry, "CN");
- if (vals) {
- auto char** val;
- for (val = vals; *val; ++val) {
- if (!strcasecmp (*val, (char*)set)) {
- err = LDAPU_SUCCESS;
- break;
- }
- }
- ldap_value_free (vals);
- }
- return err;
-}
-
-int perform_test (int argc, char *argv[])
-{
- int test_type;
- int retval = LDAPU_SUCCESS;
- DBConfDBInfo_t *db_info;
- LDAPDatabase_t *ldb;
- LDAP *ld;
- char *dbmap_file = "dblist.conf";
- char *binddn = 0;
- char *bindpw = 0;
- char *basedn;
- int retry = 1;
- int rv;
-
- fprintf(stderr, "\nStart of test: ./auth %s \"%s\" \"%s\"\n",
- argv[1], argv[2], argv[3]);
-
- rv = dbconf_read_default_dbinfo(dbmap_file, &db_info);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "Error reading dbmap file \"%s\". Reason: %s\n",
- dbmap_file, ldapu_err2string(rv));
- return rv;
- }
-
- ldapu_dbinfo_attrval (db_info, LDAPU_ATTR_BINDDN, &binddn);
- ldapu_dbinfo_attrval (db_info, LDAPU_ATTR_BINDPW, &bindpw);
-
- rv = ldapu_url_parse (db_info->url, binddn, bindpw, &ldb);
- free(binddn);
- free(bindpw);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "Error parsing ldap url \"%s\". Reason: %s\n",
- db_info->url, ldapu_err2string(rv));
- return rv;
- }
-
- basedn = ldb->basedn;
-
- test_type = atoi(argv[1]);
-
- retry = 1;
-
- while(retry) {
- retry = 0;
-
- rv = ldapu_ldap_init_and_bind (ldb);
-
- if (rv != LDAPU_SUCCESS) {
- fprintf(stderr, "Error initializing connection to LDAP. Reason: %s\n",
- ldapu_err2string(rv));
- return rv;
- }
-
- ld = ldb->ld;
-
- switch(test_type) {
- case 1:
- fprintf(stderr, "\nuserdn:\t\t\"%s\"\ngroupdn:\t\"%s\"\n",
- argv[2], argv[3]);
- retval = ldapu_auth_userdn_groupdn(ld, argv[2], argv[3], basedn);
- break;
-
- case 2:
- fprintf(stderr, "\nuid:\t\t\"%s\"\ngroupdn:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_uid_groupdn(ld, argv[2], argv[3], basedn);
- break;
-
- case 3:
- fprintf(stderr, "\nuid:\t\t\"%s\"\ngroupid:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_uid_groupid(ld, argv[2], argv[3], basedn);
- break;
-
- case 4:
- fprintf(stderr, "\nuserdn:\t\t\"%s\"\ngroupid:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_userdn_groupid(ld, argv[2], argv[3], basedn);
- break;
-
- case 5:
- fprintf(stderr, "\nuserdn:\t\t\"%s\"\nattrFilter:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_userdn_attrfilter(ld, argv[2], argv[3]);
- break;
-
- case 6:
- fprintf(stderr, "\nuid:\t\t\"%s\"\nattrFilter:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_uid_attrfilter(ld, argv[2], argv[3], basedn);
- break;
-
- case 7:
- fprintf(stderr, "\nuserdn:\t\t\"%s\"\npassword:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_userdn_password(ld, argv[2], argv[3]);
- break;
-
- case 8:
- fprintf(stderr, "\nuid:\t\t\"%s\"\npassword:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_uid_password(ld, argv[2], argv[3], basedn);
- break;
-
- case 9: {
- /* plugin test */
- LDAPMessage *entry = 0;
- LDAPMessage *res = 0;
-
- fprintf(stderr, "Cert Map issuer DN: \"%s\"\n", argv[2]);
- fprintf(stderr, "Cert Map subject DN: \"%s\"\n", argv[3]);
- retval = ldaputil_init("certmap.conf", dllname, NULL, NULL, NULL);
-
- if (retval != LDAPU_SUCCESS) {
- fprintf(stderr, "Cert Map info test failed. Reason: %s\n",
- ldapu_err2string(retval));
- break;
- }
-
- if (*(argv[2]))
- global_issuer_dn = argv[2];
- else
- global_issuer_dn = 0;
-
- retval = ldapu_cert_to_ldap_entry(argv[3], ld, ldb->basedn, &res);
-
- if (retval == LDAPU_SUCCESS) {
- char *dn;
-
- entry = ldap_first_entry(ld, res);
- dn = ldap_get_dn(ld, entry);
- fprintf(stderr, "Matched entry to cert: \"%s\"\n", dn);
- ldap_memfree(dn);
- }
- else if (retval == LDAPU_FAILED) {
- /* Not an error but couldn't map the cert */
- }
- else {
- fprintf(stderr, "Cert Map info test failed. Reason: %s\n",
- ldapu_err2string(retval));
- break;
- }
-
- /* TEMPORARY -- when & how to free the entry */
- if (res) ldap_msgfree(res);
-
- break;
- } /* case 9 */
-
- case 10:
- if ((retval = config_test(argv[2], argv[3])) == LDAPU_SUCCESS) {
- fprintf(stderr, "Config file test succeeded\n");
- }
- else {
- fprintf(stderr, "Config file test failed\n");
- }
- break;
-
- case 11:
- retval = get_dbnames_test(argv[2]);
- break;
-
- case 12:
- retval = ldapu_certinfo_save_test(argv[2], argv[3]);
- break;
-
- case 13:
- retval = ldapu_certinfo_delete_test(argv[2], argv[3]);
- break;
-
- case 14:
- retval = ldapu_certinfo_new_test(argv[2], argv[3]);
- break;
-
- case 15:
- fprintf(stderr, "\nuserdn:\t\t\"%s\"\ngroupid:\t\"%s\"\n", argv[2], argv[3]);
- {
- auto LDAPU_DNList_t* userDNs = ldapu_DNList_alloc();
- ldapu_DNList_add(userDNs, argv[2]);
- retval = ldapu_auth_usercert_groups(ld, basedn, userDNs, NULL,
- argv[3], compare_group, 30, NULL);
- ldapu_DNList_free(userDNs);
- }
- break;
-
- case 16:
- fprintf(stderr, "\nuserCert:\t\"%s\"\ngroupid:\t\"%s\"\n", argv[2], argv[3]);
- retval = ldapu_auth_usercert_groupids(ld, NULL/*userDN*/, argv[2], argv[3],
- compare_groupid, basedn, NULL/*group_out*/);
- break;
-
- } /* switch */
-
- if (retval == LDAP_SERVER_DOWN) {
- /* retry */
- retry = 1;
- ldb->ld = 0;
- }
- else if (retval == LDAPU_SUCCESS) {
- fprintf(stderr, "Authentication succeeded.\n");
- }
- else {
- fprintf(stderr, "Authentication failed.\n");
- }
- }
-
- /* cleanup */
-// ldapu_free_LDAPDatabase_t(ldb);
-// dbconf_free_dbinfo(db_info);
-// ldaputil_exit();
- return retval;
-}
-
-int main (int argc, char *argv[])
-{
- int rv;
-
- NSPR_INIT("auth");
-
- if (argc != 4) {
- fprintf(stderr, "argc = %d\n", argc);
- fprintf(stderr, "usage: %s test_type user_dn group_dn\n", argv[0]);
- fprintf(stderr, "\t%s 1 <userdn> <groupdn>\n", argv[0]);
- fprintf(stderr, "\t%s 2 <uid> <groupdn>\n", argv[0]);
- fprintf(stderr, "\t%s 3 <uid> <groupid>\n", argv[0]);
- fprintf(stderr, "\t%s 4 <userdn> <groupid>\n", argv[0]);
- fprintf(stderr, "\t%s 5 <userdn> <attrFilter>\n", argv[0]);
- fprintf(stderr, "\t%s 6 <uid> <attrFilter>\n", argv[0]);
- fprintf(stderr, "\t%s 7 <userdn> <password>\n", argv[0]);
- fprintf(stderr, "\t%s 8 <uid> <password>\n", argv[0]);
- fprintf(stderr, "\t%s 9 <certmap.conf> <subjectDN>\n", argv[0]);
- fprintf(stderr, "\t%s 10 <binddn> <bindpw>\n", argv[0]);
- fprintf(stderr, "\t%s 11 <dbmap> <ignore>\n", argv[0]);
- fprintf(stderr, "\t%s 12 <newconfig> <oldconfig> ... to test save\n", argv[0]);
- fprintf(stderr, "\t%s 13 <newconfig> <oldconfig> ... to test delete\n", argv[0]);
- fprintf(stderr, "\t%s 14 <newconfig> <oldconfig> ... to test add\n", argv[0]);
- fprintf(stderr, "\t%s 15 <userdn> <groupid>\n", argv[0]);
- fprintf(stderr, "\t%s 16 <userCertDescription> <groupid>\n", argv[0]);
- exit(LDAP_PARAM_ERROR);
- }
-
- rv = perform_test(argc, argv);
- /* PR_Exit(); */
-
- return rv;
-}
-