Some related changes were already in, and I found a couple more to make:
authorKen Raeburn <raeburn@mit.edu>
Fri, 22 Dec 2006 01:26:59 +0000 (01:26 +0000)
committerKen Raeburn <raeburn@mit.edu>
Fri, 22 Dec 2006 01:26:59 +0000 (01:26 +0000)
* ldap_realm.c (ldap_filter_correct): Change string argument to char *.  Delete
length argument, which was always strlen of the string argument, and compute
it locally, using size_t instead of (unsigned) int for length-related values.
Update all calls.

* ldap_realm.h (ldap_filter_correct): Updated declaration.

* ldap_misc.c (remove_overlapping_subtrees): Add forward declaration.  Make
static.
(is_principal_in_realm): Change local variable defrealmlen to size_t.
(store_tl_data): Change local variable curr to point to unsigned char, since
that's what the tl_data_contents array is declared as, and what the STORE16_INT
macro is happier with.
(krb5_ldap_get_reference_count): Make local variable i unsigned.

ticket: 4453
target_version: 1.6
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19009 dc483132-0cff-0310-8789-dd5450dbe970

src/plugins/kdb/ldap/libkdb_ldap/ldap_misc.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_realm.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_realm.h

index 19730defafabfa8d0fbb557096d86cb5ae423274..11c5caae3bc1fc08afb6930429657d307cc26b2b 100644 (file)
 extern char *strptime (const char *, const char *, struct tm *);
 #endif
 
+static krb5_error_code
+remove_overlapping_subtrees(char **listin, char **listop, int *subtcount,
+                           int sscope);
+
 /* Linux (GNU Libc) provides a length-limited variant of strdup.
    But all the world's not Linux.  */
 #undef strndup
@@ -418,7 +422,7 @@ is_principal_in_realm(ldap_context, searchfor)
     krb5_ldap_context          *ldap_context;
     krb5_const_principal       searchfor;
 {
-    int                         defrealmlen=0;
+    size_t                      defrealmlen=0;
     char                        *defrealm=NULL;
 
 #define FIND_MAX(a,b) ((a) > (b) ? (a) : (b))
@@ -569,7 +573,7 @@ store_tl_data(tl_data, tl_type, value)
     void                        *value;
 {
     unsigned int                currlen=0, tldatalen=0;
-    char                        *curr=NULL;
+    unsigned char               *curr=NULL;
     void                        *reallocptr=NULL;
 
     tl_data->tl_data_type = KDB_TL_USER_INFO;
@@ -592,7 +596,7 @@ store_tl_data(tl_data, tl_type, value)
                free (reallocptr);
            return ENOMEM;
        }
-       curr = (char *) (tl_data->tl_data_contents + currlen);
+       curr = (tl_data->tl_data_contents + currlen);
 
        /* store the tl_type value */
        memset(curr, tl_type, 1);
@@ -623,7 +627,7 @@ store_tl_data(tl_data, tl_type, value)
                free (reallocptr);
            return ENOMEM;
        }
-       curr = (char *) (tl_data->tl_data_contents + currlen);
+       curr = (tl_data->tl_data_contents + currlen);
 
        /* store the tl_type value */
        memset(curr, tl_type, 1);
@@ -1609,8 +1613,8 @@ krb5_error_code
 krb5_ldap_get_reference_count (krb5_context context, char *dn, char *refattr,
                               int *count, LDAP *ld)
 {
-    int                         i, st = 0, tempst = 0, gothandle = 0;
-    unsigned int               ntrees;
+    int                         st = 0, tempst = 0, gothandle = 0;
+    unsigned int               i, ntrees;
     char                        *refcntattr[2];
     char                        *filter = NULL;
     char                        **subtree = NULL, *ptr = NULL;
@@ -1634,7 +1638,7 @@ krb5_ldap_get_reference_count (krb5_context context, char *dn, char *refattr,
     refcntattr [0] = refattr;
     refcntattr [1] = NULL;
 
-    ptr = ldap_filter_correct (dn, strlen (dn));
+    ptr = ldap_filter_correct (dn);
     if (ptr == NULL) {
        st = ENOMEM;
        goto cleanup;
@@ -1809,7 +1813,7 @@ krb5_error_code krb5_ldap_name_to_policydn (context, name, policy_dn)
     }
     len = strlen (ldap_context->lrparams->realmdn);
 
-    ptr = ldap_filter_correct (name, strlen (name));
+    ptr = ldap_filter_correct (name);
     if (ptr == NULL) {
        st = ENOMEM;
        goto cleanup;
@@ -1833,7 +1837,7 @@ cleanup:
 }
 
 /* remove overlapping and repeated subtree entries from the list of subtrees */
-krb5_error_code
+static krb5_error_code
 remove_overlapping_subtrees(char **listin, char **listop, int *subtcount, int sscope)
 {
     int     slen=0, k=0, j=0, lendiff=0;
index 760b7df29ff5cb1ef9e95ad0aa640b662c42993c..3ab49dbc1d7d1695941fb5b36c9b5bf71ce62fb1 100644 (file)
@@ -74,10 +74,11 @@ char  *krbContainerRefclass[] = { "krbContainerRefAux", NULL};
  * Function to remove all special characters from a string (rfc2254).
  * Use whenever exact matching is to be done ...
  */
-char *ldap_filter_correct (unsigned char *in, unsigned int len)
+char *ldap_filter_correct (char *in)
 {
-    int i, count;
+    size_t i, count;
     char *out, *ptr;
+    size_t len = strlen(in);
 
     for (i = 0, count = 0; i < len; i++)
        switch (in[i]) {
@@ -283,7 +284,7 @@ krb5_ldap_delete_realm (context, lrealm)
        char *attr[] = {"krbprincipalname", NULL}, *realm=NULL, filter[256];
        krb5_ldap_context lcontext;
 
-       realm = ldap_filter_correct (lrealm, strlen (lrealm));
+       realm = ldap_filter_correct (lrealm);
        assert (sizeof (filter) >= sizeof ("(krbprincipalname=)") +
                strlen (realm) + 2 /* "*@" */ + 1);
 
index faff3ffbbf983c41821f78da6b337a84719dd01b..ffe6c36658fd1b41d96df732520def7268793b7c 100644 (file)
@@ -94,6 +94,6 @@ krb5_error_code
 krb5_ldap_delete_realm_1(krb5_context, char *, char **);
 
 char *
-ldap_filter_correct(unsigned char *, unsigned int);
+ldap_filter_correct(char *);
 
 #endif