summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/keytab/kt_srvtab.c
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/lib/krb5/keytab/kt_srvtab.c
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/lib/krb5/keytab/kt_srvtab.c')
-rw-r--r--src/lib/krb5/keytab/kt_srvtab.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lib/krb5/keytab/kt_srvtab.c b/src/lib/krb5/keytab/kt_srvtab.c
index 2ca616684..7bbb6580d 100644
--- a/src/lib/krb5/keytab/kt_srvtab.c
+++ b/src/lib/krb5/keytab/kt_srvtab.c
@@ -430,12 +430,11 @@ krb5_ktsrvint_read_entry(krb5_context context, krb5_keytab id, krb5_keytab_entry
ret_entry->key.enctype = ENCTYPE_DES_CBC_CRC;
ret_entry->key.magic = KV5M_KEYBLOCK;
ret_entry->key.length = sizeof(key);
- ret_entry->key.contents = malloc(sizeof(key));
- if (!ret_entry->key.contents) {
+ ret_entry->key.contents = k5memdup(key, sizeof(key), &kerror);
+ if (ret_entry->key.contents == NULL) {
krb5_free_principal(context, ret_entry->principal);
- return ENOMEM;
+ return kerror;
}
- memcpy(ret_entry->key.contents, key, sizeof(key));
return 0;
}