summaryrefslogtreecommitdiffstats
path: root/src/kdc
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2013-02-09 00:43:35 -0500
committerGreg Hudson <ghudson@mit.edu>2013-02-09 00:43:35 -0500
commit7905cd6a2eddbf264242bb2a85f811878b2da7ab (patch)
tree72b4028cbe0e399e1d293e2b718530913f0a2673 /src/kdc
parent92e2bac0f38f7f60a8fc74b5964357212c4289e1 (diff)
downloadkrb5-7905cd6a2eddbf264242bb2a85f811878b2da7ab.tar.gz
krb5-7905cd6a2eddbf264242bb2a85f811878b2da7ab.tar.xz
krb5-7905cd6a2eddbf264242bb2a85f811878b2da7ab.zip
Add and use k5memdup, k5memdup0 helpers
Add k5-int.h static functions to duplicate byte ranges, optionally with a trailing zero byte, and set an error code like k5alloc does. Use them where they would shorten existing code.
Diffstat (limited to 'src/kdc')
-rw-r--r--src/kdc/fast_util.c11
-rw-r--r--src/kdc/kdc_preauth.c4
2 files changed, 5 insertions, 10 deletions
diff --git a/src/kdc/fast_util.c b/src/kdc/fast_util.c
index 1dd5f3ebf3..40c5783035 100644
--- a/src/kdc/fast_util.c
+++ b/src/kdc/fast_util.c
@@ -256,15 +256,12 @@ kdc_find_fast(krb5_kdc_req **requestptr,
} else {
new_padata->pa_type = KRB5_PADATA_FX_COOKIE;
new_padata->length = cookie_padata->length;
- new_padata->contents = malloc(new_padata->length);
- if (new_padata->contents == NULL) {
- retval = ENOMEM;
+ new_padata->contents =
+ k5memdup(cookie_padata->contents, new_padata->length, &retval);
+ if (new_padata->contents == NULL)
free(new_padata);
- } else {
- memcpy(new_padata->contents, cookie_padata->contents,
- new_padata->length);
+ else
state->cookie = new_padata;
- }
}
}
if (retval == 0 && inner_body_out != NULL) {
diff --git a/src/kdc/kdc_preauth.c b/src/kdc/kdc_preauth.c
index 848d0bdccc..c2bcab9f3b 100644
--- a/src/kdc/kdc_preauth.c
+++ b/src/kdc/kdc_preauth.c
@@ -1586,12 +1586,10 @@ return_pw_salt(krb5_context context, krb5_pa_data *in_padata,
padata->magic = KV5M_PA_DATA;
if (salttype == KRB5_KDB_SALTTYPE_AFS3) {
- padata->contents = k5alloc(salt->length + 1, &retval);
+ padata->contents = k5memdup0(salt->data, salt->length, &retval);
if (padata->contents == NULL)
goto cleanup;
- memcpy(padata->contents, salt->data, salt->length);
padata->pa_type = KRB5_PADATA_AFS3_SALT;
- padata->contents[salt->length] = '\0';
padata->length = salt->length + 1;
} else {
padata->pa_type = KRB5_PADATA_PW_SALT;