diff options
author | Greg Hudson <ghudson@mit.edu> | 2012-06-21 17:12:50 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2012-06-21 17:12:50 -0400 |
commit | 3fd8ac32acb5616adf0ac5d4bfcaa88cf2d4946e (patch) | |
tree | 082005626210ba135d2759dc055c133ff07591ab | |
parent | f22b98916070be6b3778888df1e65ced07c47131 (diff) | |
download | krb5-3fd8ac32acb5616adf0ac5d4bfcaa88cf2d4946e.tar.gz krb5-3fd8ac32acb5616adf0ac5d4bfcaa88cf2d4946e.tar.xz krb5-3fd8ac32acb5616adf0ac5d4bfcaa88cf2d4946e.zip |
Simplify bld_princ.c
-rw-r--r-- | src/include/k5-int.h | 9 | ||||
-rw-r--r-- | src/lib/krb5/krb/bld_princ.c | 86 |
2 files changed, 20 insertions, 75 deletions
diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 28c86f8444..b1e535e598 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -2471,15 +2471,6 @@ krb5_error_code krb5_use_natural_time(krb5_context); krb5_error_code krb5_set_time_offsets(krb5_context, krb5_timestamp, krb5_int32); -/* Internal principal function used by KIM to avoid code duplication */ -krb5_error_code KRB5_CALLCONV -krb5int_build_principal_alloc_va(krb5_context context, - krb5_principal *princ, - unsigned int rlen, - const char *realm, - const char *first, - va_list ap); - /* Some data comparison and conversion functions. */ static inline int data_eq(krb5_data d1, krb5_data d2) diff --git a/src/lib/krb5/krb/bld_princ.c b/src/lib/krb5/krb/bld_princ.c index 8c17ab382b..ba411a6cd9 100644 --- a/src/lib/krb5/krb/bld_princ.c +++ b/src/lib/krb5/krb/bld_princ.c @@ -27,15 +27,9 @@ #include <stdarg.h> #include "k5-int.h" -/* Takes first component as argument for KIM API, - * which does not allow realms with zero components */ static krb5_error_code -krb5int_build_principal_va(krb5_context context, - krb5_principal princ, - unsigned int rlen, - const char *realm, - const char *first, - va_list ap) +build_principal_va(krb5_context context, krb5_principal princ, + unsigned int rlen, const char *realm, va_list ap) { krb5_error_code retval = 0; char *r = NULL; @@ -52,33 +46,25 @@ krb5int_build_principal_va(krb5_context context, if (!r) { retval = ENOMEM; } } - if (!retval && first) { - data[0].length = strlen(first); - data[0].data = strdup(first); - if (!data[0].data) { retval = ENOMEM; } - count++; - - /* ap is only valid if first is non-NULL */ - while (!retval && (component = va_arg(ap, char *))) { - if (count == size) { - krb5_data *new_data = NULL; - - size *= 2; - new_data = realloc ((char *) data, sizeof(krb5_data) * size); - if (new_data) { - data = new_data; - } else { - retval = ENOMEM; - } - } + while (!retval && (component = va_arg(ap, char *))) { + if (count == size) { + krb5_data *new_data = NULL; - if (!retval) { - data[count].length = strlen(component); - data[count].data = strdup(component); - if (!data[count].data) { retval = ENOMEM; } - count++; + size *= 2; + new_data = realloc(data, size * sizeof(krb5_data)); + if (new_data) { + data = new_data; + } else { + retval = ENOMEM; } } + + if (!retval) { + data[count].length = strlen(component); + data[count].data = strdup(component); + if (!data[count].data) { retval = ENOMEM; } + count++; + } } if (!retval) { @@ -110,37 +96,7 @@ krb5_build_principal_va(krb5_context context, const char *realm, va_list ap) { - char *first = va_arg(ap, char *); - - return krb5int_build_principal_va(context, princ, rlen, realm, first, ap); -} - -/* Takes first component as argument for KIM API, - * which does not allow realms with zero components */ -krb5_error_code KRB5_CALLCONV -krb5int_build_principal_alloc_va(krb5_context context, - krb5_principal *princ, - unsigned int rlen, - const char *realm, - const char *first, - va_list ap) -{ - krb5_error_code retval = 0; - - krb5_principal p = malloc(sizeof(krb5_principal_data)); - if (!p) { retval = ENOMEM; } - - if (!retval) { - retval = krb5int_build_principal_va(context, p, rlen, realm, first, ap); - } - - if (!retval) { - *princ = p; - } else { - free(p); - } - - return retval; + return build_principal_va(context, princ, rlen, realm, ap); } krb5_error_code KRB5_CALLCONV @@ -152,14 +108,12 @@ krb5_build_principal_alloc_va(krb5_context context, { krb5_error_code retval = 0; krb5_principal p; - char *first; p = malloc(sizeof(krb5_principal_data)); if (p == NULL) return ENOMEM; - first = va_arg(ap, char *); - retval = krb5int_build_principal_va(context, p, rlen, realm, first, ap); + retval = build_principal_va(context, p, rlen, realm, ap); if (retval) { free(p); return retval; |