diff options
| author | Paul Park <pjpark@mit.edu> | 1995-08-07 21:44:55 +0000 |
|---|---|---|
| committer | Paul Park <pjpark@mit.edu> | 1995-08-07 21:44:55 +0000 |
| commit | b26b007dd719ce4eeeba3a43ffcfc214357fbb0e (patch) | |
| tree | c807a8fbc7700ab23fbd18543562722eccef7b4c /src/lib/kdb/decrypt_key.c | |
| parent | 6df64028850b170d358c88e2dca2b74abafe1a23 (diff) | |
| download | krb5-b26b007dd719ce4eeeba3a43ffcfc214357fbb0e.tar.gz krb5-b26b007dd719ce4eeeba3a43ffcfc214357fbb0e.tar.xz krb5-b26b007dd719ce4eeeba3a43ffcfc214357fbb0e.zip | |
Improve keysalt handling
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6443 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kdb/decrypt_key.c')
| -rw-r--r-- | src/lib/kdb/decrypt_key.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/kdb/decrypt_key.c b/src/lib/kdb/decrypt_key.c index 9a46e845e9..a735d63f38 100644 --- a/src/lib/kdb/decrypt_key.c +++ b/src/lib/kdb/decrypt_key.c @@ -70,11 +70,17 @@ krb5_dbekd_decrypt_key_data(context, eblock, key_data, keyblock, keysalt) if (keysalt) { if (key_data->key_data_ver == 2) { keysalt->type = key_data->key_data_type[1]; - keysalt->data.length = key_data->key_data_length[1]; - if (!(keysalt->data.data = (char *)malloc(keysalt->data.length))){ - krb5_xfree(keyblock->contents); - return ENOMEM; + if (keysalt->data.length = key_data->key_data_length[1]) { + if (!(keysalt->data.data = + (char *)malloc(keysalt->data.length))){ + krb5_xfree(keyblock->contents); + return ENOMEM; + } + memcpy(keysalt->data.data, key_data->key_data_contents[1], + (size_t) keysalt->data.length); } + else + keysalt->data.data = (char *) NULL; } else { keysalt->type = KRB5_KDB_SALTTYPE_NORMAL; keysalt->data.length = 0; |
