]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Remove libkdb_ldap null argument checks 1434/head
authorGreg Hudson <ghudson@mit.edu>
Thu, 12 Jun 2025 21:15:24 +0000 (17:15 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 16 Jun 2025 22:01:41 +0000 (18:01 -0400)
libkdb_ldap contains some spotty null argument pointer checks, which
is not the project's practice outside of the GSSAPI.  Remove them.
Also remove krb5_ldap_delete_krbcontainer(), which became unused after
commit 0269810b1aec6c554fb746433f045d59fd34ab3a.

src/plugins/kdb/ldap/libkdb_ldap/ldap_krbcontainer.h
src/plugins/kdb/ldap/libkdb_ldap/ldap_misc.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_pwd_policy.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_realm.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_tkt_policy.c
src/tests/t_kdb.py

index 549f8ce94b32cc13893ff7b0f1ad6d887433d1f3..675bceaefb166b046788b35dee0657d02d561965 100644 (file)
@@ -41,7 +41,4 @@ krb5_ldap_read_krbcontainer_dn(krb5_context, char **);
 krb5_error_code
 krb5_ldap_create_krbcontainer(krb5_context, const char *);
 
-krb5_error_code
-krb5_ldap_delete_krbcontainer(krb5_context, const char *);
-
 #endif
index 90b90183be9c89cee6fc2c90ef7fe3bd615ca32b..423cd0d84b975dd132fa7120a3e43e5c0834ebcf 100644 (file)
@@ -1163,11 +1163,6 @@ krb5_ldap_get_reference_count(krb5_context context, char *dn, char *refattr,
     krb5_ldap_server_handle *ldap_server_handle = NULL;
     LDAPMessage *result = NULL;
 
-    if (dn == NULL || refattr == NULL) {
-        st = EINVAL;
-        goto cleanup;
-    }
-
     SETUP_CONTEXT();
     if (ld == NULL) {
         GET_HANDLE();
index 838583a1f966950a526bde7b6cb8f82bc6fd129f..1aa194709f5fc5f1d8cfa3ece9730b0e45a56c94 100644 (file)
@@ -146,7 +146,7 @@ krb5_ldap_create_password_policy(krb5_context context, osa_policy_ent_t policy)
     krb5_clear_error_message(context);
 
     /* validate the input parameters */
-    if (policy == NULL || policy->name == NULL)
+    if (policy->name == NULL)
         return EINVAL;
 
     SETUP_CONTEXT();
@@ -200,7 +200,7 @@ krb5_ldap_put_password_policy(krb5_context context, osa_policy_ent_t policy)
     krb5_clear_error_message(context);
 
     /* validate the input parameters */
-    if (policy == NULL || policy->name == NULL)
+    if (policy->name == NULL)
         return EINVAL;
 
     SETUP_CONTEXT();
@@ -296,10 +296,6 @@ krb5_ldap_get_password_policy_from_dn(krb5_context context, char *pol_name,
     /* Clear the global error string */
     krb5_clear_error_message(context);
 
-    /* validate the input parameters */
-    if (pol_dn == NULL)
-        return EINVAL;
-
     *policy = NULL;
     SETUP_CONTEXT();
     GET_HANDLE();
@@ -347,12 +343,6 @@ krb5_ldap_get_password_policy(krb5_context context, char *name,
     /* Clear the global error string */
     krb5_clear_error_message(context);
 
-    /* validate the input parameters */
-    if (name == NULL) {
-        st = EINVAL;
-        goto cleanup;
-    }
-
     st = krb5_ldap_name_to_policydn(context, name, &policy_dn);
     if (st != 0)
         goto cleanup;
@@ -379,10 +369,6 @@ krb5_ldap_delete_password_policy(krb5_context context, char *policy)
     /* Clear the global error string */
     krb5_clear_error_message(context);
 
-    /* validate the input parameters */
-    if (policy == NULL)
-        return EINVAL;
-
     SETUP_CONTEXT();
     GET_HANDLE();
 
index c9c8cbd1f24611b6142cac6fc17aceba4717e1fa..57f0b80666c3ca446072905abb839ec37aa723e4 100644 (file)
@@ -218,12 +218,6 @@ krb5_ldap_delete_realm (krb5_context context, char *lrealm)
 
     SETUP_CONTEXT ();
 
-    if (lrealm == NULL) {
-        st = EINVAL;
-        k5_setmsg(context, st, _("Realm information not available"));
-        goto cleanup;
-    }
-
     if ((st=krb5_ldap_read_realm_params(context, lrealm, &rparam, &mask)) != 0)
         goto cleanup;
 
@@ -357,11 +351,6 @@ krb5_ldap_modify_realm(krb5_context context, krb5_ldap_realm_params *rparams,
     if (mask == 0)
         return 0;
 
-    if (rparams == NULL) {
-        st = EINVAL;
-        return st;
-    }
-
     SETUP_CONTEXT ();
 
     /* Check validity of arguments */
@@ -484,12 +473,6 @@ krb5_ldap_create_krbcontainer(krb5_context context, const char *dn)
     /* get ldap handle */
     GET_HANDLE ();
 
-    if (dn == NULL) {
-        st = EINVAL;
-        k5_setmsg(context, st, _("Kerberos Container information is missing"));
-        goto cleanup;
-    }
-
     strval[0] = "krbContainer";
     strval[1] = NULL;
     if ((st=krb5_add_str_mem_ldap_mod(&mods, "objectclass", LDAP_MOD_ADD, strval)) != 0)
@@ -529,46 +512,6 @@ cleanup:
     return(st);
 }
 
-/*
- * Delete the Kerberos container in the Directory
- */
-
-krb5_error_code
-krb5_ldap_delete_krbcontainer(krb5_context context, const char *dn)
-{
-    LDAP                        *ld=NULL;
-    krb5_error_code             st=0;
-    kdb5_dal_handle             *dal_handle=NULL;
-    krb5_ldap_context           *ldap_context=NULL;
-    krb5_ldap_server_handle     *ldap_server_handle=NULL;
-
-    SETUP_CONTEXT ();
-
-    /* get ldap handle */
-    GET_HANDLE ();
-
-    if (dn == NULL) {
-        st = EINVAL;
-        k5_setmsg(context, st, _("Kerberos Container information is missing"));
-        goto cleanup;
-    }
-
-    /* delete the kerberos container */
-    if ((st = ldap_delete_ext_s(ld, dn, NULL, NULL)) != LDAP_SUCCESS) {
-        int ost = st;
-        st = translate_ldap_error (st, OP_ADD);
-        k5_setmsg(context, st, _("Kerberos Container delete FAILED: %s"),
-                  ldap_err2string(ost));
-        goto cleanup;
-    }
-
-cleanup:
-
-    krb5_ldap_put_handle_to_pool(ldap_context, ldap_server_handle);
-    return(st);
-}
-
-
 /*
  * Create Realm in eDirectory. This is used by kdb5_util
  */
@@ -593,15 +536,10 @@ krb5_ldap_create_realm(krb5_context context, krb5_ldap_realm_params *rparams,
     SETUP_CONTEXT ();
 
     /* Check input validity ... */
-    if (ldap_context->container_dn == NULL ||
-        rparams == NULL ||
-        rparams->realm_name == NULL ||
-        ((mask & LDAP_REALM_SUBTREE) && rparams->subtree  == NULL) ||
-        ((mask & LDAP_REALM_CONTREF) && rparams->containerref == NULL) ||
-        0) {
-        st = EINVAL;
-        return st;
-    }
+    if (ldap_context->container_dn == NULL || rparams->realm_name == NULL ||
+        ((mask & LDAP_REALM_SUBTREE) && rparams->subtree == NULL) ||
+        ((mask & LDAP_REALM_CONTREF) && rparams->containerref == NULL))
+        return EINVAL;
 
     /* get ldap handle */
     GET_HANDLE ();
@@ -729,10 +667,8 @@ krb5_ldap_read_realm_params(krb5_context context, char *lrealm,
     SETUP_CONTEXT ();
 
     /* validate the input parameter */
-    if (lrealm == NULL || ldap_context->container_dn == NULL) {
-        st = EINVAL;
-        goto cleanup;
-    }
+    if (ldap_context->container_dn == NULL)
+        return EINVAL;
 
     /* get ldap handle */
     GET_HANDLE ();
index 52f09497ebe84c3f09160bdb45d8c0f3b43ec4ec..a093add43acb4c2c0ee654f2ba9b272c29a69026 100644 (file)
@@ -61,11 +61,8 @@ krb5_ldap_create_policy(krb5_context context, krb5_ldap_policy_params *policy,
     krb5_ldap_server_handle     *ldap_server_handle=NULL;
 
     /* validate the input parameters */
-    if (policy == NULL || policy->policy == NULL) {
-        st = EINVAL;
-        k5_setmsg(context, st, _("Ticket Policy Name missing"));
-        goto cleanup;
-    }
+    if (policy->policy == NULL)
+        return EINVAL;
 
     SETUP_CONTEXT();
     GET_HANDLE();
@@ -137,11 +134,8 @@ krb5_ldap_modify_policy(krb5_context context, krb5_ldap_policy_params *policy,
     krb5_ldap_server_handle     *ldap_server_handle=NULL;
 
     /* validate the input parameters */
-    if (policy == NULL || policy->policy==NULL) {
-        st = EINVAL;
-        k5_setmsg(context, st, _("Ticket Policy Name missing"));
-        goto cleanup;
-    }
+    if (policy->policy == NULL)
+        return EINVAL;
 
     SETUP_CONTEXT();
     GET_HANDLE();
@@ -213,13 +207,6 @@ krb5_ldap_read_policy(krb5_context context, char *policyname,
     krb5_ldap_context           *ldap_context=NULL;
     krb5_ldap_server_handle     *ldap_server_handle=NULL;
 
-    /* validate the input parameters */
-    if (policyname == NULL  || policy == NULL) {
-        st = EINVAL;
-        k5_setmsg(context, st, _("Ticket Policy Object information missing"));
-        goto cleanup;
-    }
-
     SETUP_CONTEXT();
     GET_HANDLE();
 
@@ -306,13 +293,6 @@ krb5_ldap_delete_policy(krb5_context context, char *policyname)
     krb5_ldap_context           *ldap_context=NULL;
     krb5_ldap_server_handle     *ldap_server_handle=NULL;
 
-    if (policyname == NULL) {
-        st = EINVAL;
-        k5_prependmsg(context, st, _("Ticket Policy Object DN missing"));
-        goto cleanup;
-    }
-
-
     SETUP_CONTEXT();
     GET_HANDLE();
 
index 14d57923fd7171295401b58188cb632c05ab7b13..afc683cb9b59b0cdca2a5cb471d8a237b9784d37 100755 (executable)
@@ -632,6 +632,5 @@ realm.run([kdb5_ldap_util, 'destroy', '-f'])
 # * Out-of-memory error conditions
 # * Handling of failures from slapd (including krb5_retry_get_ldap_handle)
 # * Handling of servers which don't support mod-increment
-# * krb5_ldap_delete_krbcontainer (only happens if krb5_ldap_create fails)
 
 success('LDAP and DB2 KDB tests')