aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2009-11-29 15:43:29 +0000
committerGreg Hudson <ghudson@mit.edu>2009-11-29 15:43:29 +0000
commit78501c922b2da4ad025282f3713e12e04de19fb2 (patch)
tree5167aa34176e9a86196f76cd16fe7b444cda2588 /src
parent3c3463b64f5feeed0c1113fb2caaf7d9a489161a (diff)
downloadkrb5-78501c922b2da4ad025282f3713e12e04de19fb2.zip
krb5-78501c922b2da4ad025282f3713e12e04de19fb2.tar.gz
krb5-78501c922b2da4ad025282f3713e12e04de19fb2.tar.bz2
Avoid using strncpy in the production of the arcfour salt because it
produces a (spurious) Coverity defect. Fix a memory leak in krb5int_arcfour_encrypt. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23380 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/crypto/krb/arcfour/arcfour.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lib/crypto/krb/arcfour/arcfour.c b/src/lib/crypto/krb/arcfour/arcfour.c
index b9cb5fc..ba48d72 100644
--- a/src/lib/crypto/krb/arcfour/arcfour.c
+++ b/src/lib/crypto/krb/arcfour/arcfour.c
@@ -11,7 +11,7 @@
#include "arcfour-int.h"
#include "hash_provider/hash_provider.h"
-const char *const l40 = "fortybits";
+const char l40[] = "fortybits";
void
krb5int_arcfour_encrypt_length(const struct krb5_enc_provider *enc,
@@ -59,7 +59,7 @@ krb5int_arcfour_usage_key(const struct krb5_enc_provider *enc,
/* Generate the salt. */
ms_usage = krb5int_arcfour_translate_usage(usage);
if (session_keyblock->enctype == ENCTYPE_ARCFOUR_HMAC_EXP) {
- strncpy(salt_buf, l40, sizeof(salt_buf));
+ memcpy(salt_buf, l40, 10);
store_32_le(ms_usage, salt_buf + 10);
} else {
salt.length=4;
@@ -160,8 +160,7 @@ krb5int_arcfour_encrypt(const struct krb5_enc_provider *enc,
if (ret)
goto cleanup;
- output->length = plaintext.length + hash->hashsize;
- return 0;
+ output->length = plainlen + hash->hashsize;
cleanup:
krb5int_c_free_keyblock(NULL, usage_keyblock);