aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorWill Fiveash <will.fiveash@oracle.com>2009-01-16 21:57:00 +0000
committerWill Fiveash <will.fiveash@oracle.com>2009-01-16 21:57:00 +0000
commit93db3383b471ba3f620f24ee5e3c49a6150e4e8a (patch)
treec6ceb3cc3e73a49b92a40256f0480d011d31d322 /src/lib
parent0a39c0f64ec6cb73486a8b05ae8a355fbab57f29 (diff)
downloadkrb5-93db3383b471ba3f620f24ee5e3c49a6150e4e8a.zip
krb5-93db3383b471ba3f620f24ee5e3c49a6150e4e8a.tar.gz
krb5-93db3383b471ba3f620f24ee5e3c49a6150e4e8a.tar.bz2
Fixed several more places where type mismatches could cause corruption
with the encoding/decoding of the new TL data types. git-svn-id: svn://anonsvn.mit.edu/krb5/branches/mkey_migrate@21756 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/kdb/kdb5.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/lib/kdb/kdb5.c b/src/lib/kdb/kdb5.c
index 633e254..cebbb18 100644
--- a/src/lib/kdb/kdb5.c
+++ b/src/lib/kdb/kdb5.c
@@ -2336,10 +2336,11 @@ krb5_dbe_update_mkvno(krb5_context context,
{
krb5_tl_data tl_data;
krb5_octet buf[2]; /* this is the encoded size of an int16 */
+ krb5_int16 tmp_kvno = (krb5_int16) mkvno;
tl_data.tl_data_type = KRB5_TL_MKVNO;
tl_data.tl_data_length = sizeof(buf);
- krb5_kdb_encode_int16((krb5_ui_2) mkvno, buf);
+ krb5_kdb_encode_int16(tmp_kvno, buf);
tl_data.tl_data_contents = buf;
return (krb5_dbe_update_tl_data(context, entry, &tl_data));
@@ -2423,8 +2424,9 @@ krb5_dbe_update_mkey_aux(krb5_context context,
krb5_mkey_aux_node * mkey_aux_data_list)
{
krb5_tl_data tl_data;
- krb5_int16 version;
- krb5_octet *nextloc;
+ krb5_int16 version, tmp_kvno;
+ /* krb5_octet *nextloc; */
+ unsigned char *nextloc;
krb5_mkey_aux_node *aux_data_entry;
tl_data.tl_data_type = KRB5_TL_MKEY_AUX;
@@ -2448,25 +2450,24 @@ krb5_dbe_update_mkey_aux(krb5_context context,
}
nextloc = tl_data.tl_data_contents;
- /* version */
- krb5_kdb_encode_int16((krb5_ui_2)KRB5_TL_MKEY_AUX_VER_1,
- (unsigned char *)nextloc);
+ version = KRB5_TL_MKEY_AUX_VER_1;
+ krb5_kdb_encode_int16(version, nextloc);
nextloc += sizeof(krb5_ui_2);
for (aux_data_entry = mkey_aux_data_list; aux_data_entry != NULL;
aux_data_entry = aux_data_entry->next) {
- krb5_kdb_encode_int16((krb5_ui_2)aux_data_entry->mkey_kvno,
- (unsigned char *)nextloc);
+ tmp_kvno = (krb5_int16) aux_data_entry->mkey_kvno;
+ krb5_kdb_encode_int16(tmp_kvno, nextloc);
nextloc += sizeof(krb5_ui_2);
- krb5_kdb_encode_int16((krb5_ui_2)aux_data_entry->latest_mkey.key_data_kvno,
- (unsigned char *)nextloc);
+ krb5_kdb_encode_int16(aux_data_entry->latest_mkey.key_data_kvno,
+ nextloc);
nextloc += sizeof(krb5_ui_2);
- krb5_kdb_encode_int16((krb5_ui_2)aux_data_entry->latest_mkey.key_data_type[0],
- (unsigned char *)nextloc);
+ krb5_kdb_encode_int16(aux_data_entry->latest_mkey.key_data_type[0],
+ nextloc);
nextloc += sizeof(krb5_ui_2);
- krb5_kdb_encode_int16((krb5_ui_2)aux_data_entry->latest_mkey.key_data_length[0],
- (unsigned char *)nextloc);
+ krb5_kdb_encode_int16(aux_data_entry->latest_mkey.key_data_length[0],
+ nextloc);
nextloc += sizeof(krb5_ui_2);
if (aux_data_entry->latest_mkey.key_data_length[0] > 0) {
@@ -2577,8 +2578,8 @@ krb5_dbe_update_actkvno(krb5_context context,
return (ENOMEM);
/* add the current version # for the data format used for KRB5_TL_ACTKVNO */
- krb5_kdb_encode_int16((krb5_ui_2)KRB5_TL_ACTKVNO_VER_1,
- (unsigned char *)new_tl_data.tl_data_contents);
+ version = KRB5_TL_ACTKVNO_VER_1;
+ krb5_kdb_encode_int16(version, (unsigned char *) new_tl_data.tl_data_contents);
for (cur_actkvno = actkvno_list; cur_actkvno != NULL;
cur_actkvno = cur_actkvno->next) {