r12327: ENT_TYPE_ANY isn't used anywhere in Samba4, so don't implement it in hdb...
authorAndrew Bartlett <abartlet@samba.org>
Sun, 18 Dec 2005 22:50:01 +0000 (22:50 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:47:30 +0000 (13:47 -0500)
Andrew Bartlett
(This used to be commit 96e124b7bb9a916bbdfbfa36d24a1dafa262c552)

source4/kdc/hdb-ldb.c

index 3862ec7f99f9a13fdb6ccf8fdf50bf983bc1299b..1ab52ecb6885b0999d8edee75e1671229cbb57a6 100644 (file)
@@ -525,8 +525,6 @@ static krb5_error_code LDB_lookup_principal(krb5_context context, struct ldb_con
        char *filter = NULL;
        const char * const *princ_attrs = krb5_attrs;
 
-       char *princ_str;
-       char *princ_str_talloc;
        char *short_princ;
        char *short_princ_talloc;
 
@@ -534,28 +532,17 @@ static krb5_error_code LDB_lookup_principal(krb5_context context, struct ldb_con
 
        struct ldb_result *res = NULL;
 
-       ret = krb5_unparse_name(context, principal, &princ_str);
-
-       if (ret != 0) {
-               krb5_set_error_string(context, "LDB_lookup_principal: could not parse principal");
-               krb5_warnx(context, "LDB_lookup_principal: could not parse principal");
-               return ret;
-       }
-
        ret = krb5_unparse_name_norealm(context, principal, &short_princ);
 
        if (ret != 0) {
-               free(princ_str);
                krb5_set_error_string(context, "LDB_lookup_principal: could not parse principal");
                krb5_warnx(context, "LDB_lookup_principal: could not parse principal");
                return ret;
        }
 
-       princ_str_talloc = talloc_strdup(mem_ctx, princ_str);
        short_princ_talloc = talloc_strdup(mem_ctx, short_princ);
-       free(princ_str);
        free(short_princ);
-       if (!short_princ || !princ_str_talloc) {
+       if (!short_princ || !short_princ_talloc) {
                krb5_set_error_string(context, "LDB_lookup_principal: talloc_strdup() failed!");
                return ENOMEM;
        }
@@ -564,7 +551,9 @@ static krb5_error_code LDB_lookup_principal(krb5_context context, struct ldb_con
        case HDB_LDB_ENT_TYPE_CLIENT:
                /* Can't happen */
                return EINVAL;
-               break;
+       case HDB_LDB_ENT_TYPE_ANY:
+               /* Can't happen */
+               return EINVAL;
        case HDB_LDB_ENT_TYPE_KRBTGT:
                filter = talloc_asprintf(mem_ctx, "(&(objectClass=user)(samAccountName=%s))", 
                                         KRB5_TGS_NAME);
@@ -573,10 +562,6 @@ static krb5_error_code LDB_lookup_principal(krb5_context context, struct ldb_con
                filter = talloc_asprintf(mem_ctx, "(&(objectClass=user)(samAccountName=%s))", 
                                         short_princ_talloc);
                break;
-       case HDB_LDB_ENT_TYPE_ANY:
-               filter = talloc_asprintf(mem_ctx, "(&(objectClass=user)(|(|(samAccountName=%s)(servicePrincipalName=%s))(userPrincipalName=%s)))", 
-                                        short_princ_talloc, short_princ_talloc, princ_str_talloc);
-               break;
        }
 
        if (!filter) {
@@ -830,8 +815,9 @@ static krb5_error_code LDB_fetch(krb5_context context, HDB *db, unsigned flags,
                        break;
                }
        case HDB_ENT_TYPE_ANY:
-               ldb_ent_type = HDB_LDB_ENT_TYPE_ANY;
-               break;
+               krb5_warnx(context, "LDB_fetch: ENT_TYPE_ANY is not valid in hdb-ldb!");
+               talloc_free(mem_ctx);
+               return HDB_ERR_NOENTRY;
        default:
                krb5_warnx(context, "LDB_fetch: invalid ent_type specified!");
                talloc_free(mem_ctx);