]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Constify krb5_string_to_keysalts()'s string arg
authorNicolas Williams <nico@cryptonector.com>
Thu, 26 Jul 2012 04:00:49 +0000 (23:00 -0500)
committerGreg Hudson <ghudson@mit.edu>
Mon, 30 Jul 2012 23:11:34 +0000 (19:11 -0400)
src/include/adm_proto.h
src/lib/kadm5/admin_internal.h
src/lib/kadm5/srv/svr_policy.c
src/lib/kadm5/str_conv.c

index c6d1425ba2c6dd3451b8b5ed4a22b33599621d29..d79e36294148ad941b8c85bba891e5d7bc81b8d2 100644 (file)
@@ -100,7 +100,7 @@ krb5_error_code krb5_keysalt_iterate(krb5_key_salt_tuple *, krb5_int32,
                                                          krb5_pointer),
                                      krb5_pointer);
 
-krb5_error_code krb5_string_to_keysalts(char *, const char *, const char *,
-                                        krb5_boolean, krb5_key_salt_tuple **,
-                                        krb5_int32 *);
+krb5_error_code krb5_string_to_keysalts(const char *, const char *,
+                                        const char *, krb5_boolean,
+                                        krb5_key_salt_tuple **, krb5_int32 *);
 #endif  /* KRB5_ADM_PROTO_H__ */
index 6d79243bd64b588658781c9db57bf7694d60c403..ec604b2b3ca93fca1abe499e95963489b68c4d54 100644 (file)
@@ -70,7 +70,7 @@ kadm5_ret_t _kadm5_chpass_principal_util(void *server_handle,
    maybe shouldn't be named krb5_*, but they are. */
 
 krb5_error_code
-krb5_string_to_keysalts(char *string, const char *tupleseps,
+krb5_string_to_keysalts(const char *string, const char *tupleseps,
                         const char *ksaltseps, krb5_boolean dups,
                         krb5_key_salt_tuple **ksaltp, krb5_int32 *nksaltp);
 
index 3a8f82ecf287d593179356d5f3d1a719bc25e662..0d79f86dcea6b8bcb7ee7908d37e4df546f7bfb3 100644 (file)
@@ -54,7 +54,7 @@ kadm5_create_policy(void *server_handle,
 
 /* Validate allowed_keysalts. */
 static kadm5_ret_t
-validate_allowed_keysalts(char *allowed_keysalts)
+validate_allowed_keysalts(const char *allowed_keysalts)
 {
     kadm5_ret_t ret;
     krb5_key_salt_tuple *ks_tuple = NULL;
index 37a27dd36e8ddd8d8472208eda956e3db5462370..cdd2786c10f0a8f9b1f35a5125fc8e450c925364 100644 (file)
@@ -251,16 +251,12 @@ krb5_keysalt_is_present(ksaltlist, nksalts, enctype, salttype)
  *                                of key/salt tuples.
  */
 krb5_error_code
-krb5_string_to_keysalts(string, tupleseps, ksaltseps, dups, ksaltp, nksaltp)
-    char                *string;
-    const char          *tupleseps;
-    const char          *ksaltseps;
-    krb5_boolean        dups;
-    krb5_key_salt_tuple **ksaltp;
-    krb5_int32          *nksaltp;
+krb5_string_to_keysalts(const char *string, const char *tupleseps,
+                        const char *ksaltseps, krb5_boolean dups,
+                        krb5_key_salt_tuple **ksaltp, krb5_int32 *nksaltp)
 {
     krb5_error_code     kret;
-    char                *kp, *sp, *ep;
+    char                *dup_string, *kp, *sp, *ep;
     char                sepchar = 0, trailchar = 0;
     krb5_enctype        ktype;
     krb5_int32          stype;
@@ -271,7 +267,10 @@ krb5_string_to_keysalts(string, tupleseps, ksaltseps, dups, ksaltp, nksaltp)
     size_t              len;
 
     kret = 0;
-    kp = string;
+    dup_string = strdup(string);
+    if (dup_string == NULL)
+        return ENOMEM;
+    kp = dup_string;
     tseplist = (tupleseps) ? tupleseps : default_tupleseps;
     ksseplist = (ksaltseps) ? ksaltseps : default_ksaltseps;
     while (kp) {
@@ -346,8 +345,10 @@ krb5_string_to_keysalts(string, tupleseps, ksaltseps, dups, ksaltp, nksaltp)
                 break;
             }
         }
-        if (kret)
+        if (kret) {
+            free(dup_string);
             return kret;
+        }
         if (sp)
             sp[-1] = sepchar;
         if (ep)
@@ -369,6 +370,7 @@ krb5_string_to_keysalts(string, tupleseps, ksaltseps, dups, ksaltp, nksaltp)
             if (!*kp) kp = NULL;
         }
     } /* while kp */
+    free(dup_string);
     return(kret);
 }