diff options
author | Will Fiveash <will.fiveash@oracle.com> | 2009-01-16 21:57:00 +0000 |
---|---|---|
committer | Will Fiveash <will.fiveash@oracle.com> | 2009-01-16 21:57:00 +0000 |
commit | 93db3383b471ba3f620f24ee5e3c49a6150e4e8a (patch) | |
tree | c6ceb3cc3e73a49b92a40256f0480d011d31d322 /src/lib | |
parent | 0a39c0f64ec6cb73486a8b05ae8a355fbab57f29 (diff) | |
download | krb5-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.c | 33 |
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) { |