summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/krb5/k5sealv3.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/gssapi/krb5/k5sealv3.c')
-rw-r--r--src/lib/gssapi/krb5/k5sealv3.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/gssapi/krb5/k5sealv3.c b/src/lib/gssapi/krb5/k5sealv3.c
index c291e0fb0c..e4c2c2f8f0 100644
--- a/src/lib/gssapi/krb5/k5sealv3.c
+++ b/src/lib/gssapi/krb5/k5sealv3.c
@@ -126,10 +126,9 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
#else
ec = 0;
#endif
- plain.length = message->length + 16 + ec;
- plain.data = malloc(message->length + 16 + ec);
- if (plain.data == NULL)
- return ENOMEM;
+ err = alloc_data(&plain, message->length + 16 + ec);
+ if (err)
+ return err;
/* Get size of ciphertext. */
bufsize = 16 + krb5_encrypt_size (plain.length, key->keyblock.enctype);
@@ -190,10 +189,9 @@ gss_krb5int_make_seal_token_v3 (krb5_context context,
tok_id = KG2_TOK_WRAP_MSG;
wrap_with_checksum:
- plain.length = message->length + 16;
- plain.data = malloc(message->length + 16);
- if (plain.data == NULL)
- return ENOMEM;
+ err = alloc_data(&plain, message->length + 16);
+ if (err)
+ return err;
err = krb5_c_checksum_length(context, cksumtype, &cksumsize);
if (err)
@@ -442,8 +440,7 @@ gss_krb5int_unseal_token_v3(krb5_context *contextptr,
Rotate the first two. */
store_16_be(0, ptr+4);
store_16_be(0, ptr+6);
- plain.length = bodysize-ec;
- plain.data = (char *)ptr;
+ plain = make_data(ptr, bodysize - ec);
if (!gss_krb5int_rotate_left(ptr, bodysize-ec, 16))
goto no_mem;
sum.length = ec;