summaryrefslogtreecommitdiffstats
path: root/src/lib/kdb/kdb5.c
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-07-21 19:01:35 +0000
committerGreg Hudson <ghudson@mit.edu>2010-07-21 19:01:35 +0000
commita9883866e0b8c72986965c98dbfa98b7f50640cf (patch)
treefff4ac58e1e5740d12bf669bcac1e9310624fc31 /src/lib/kdb/kdb5.c
parentb802a4d4ec3e94a7ae8766e702c4cf1be47b5bf6 (diff)
downloadkrb5-a9883866e0b8c72986965c98dbfa98b7f50640cf.tar.gz
krb5-a9883866e0b8c72986965c98dbfa98b7f50640cf.tar.xz
krb5-a9883866e0b8c72986965c98dbfa98b7f50640cf.zip
Revert the part of r24157 which added the dal_version argument to the
init_library interface. Instead use the already existing maj_ver field of the DAL vtable to detect incompatibilities. Since maj_ver is a short int, use an incrementing number instead of a date for the major version. ticket: 6749 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24200 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kdb/kdb5.c')
-rw-r--r--src/lib/kdb/kdb5.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/kdb/kdb5.c b/src/lib/kdb/kdb5.c
index 7d0b84ca2b..9786503005 100644
--- a/src/lib/kdb/kdb5.c
+++ b/src/lib/kdb/kdb5.c
@@ -295,7 +295,7 @@ kdb_load_library(krb5_context kcontext, char *lib_name, db_library *libptr)
memcpy(&lib->vftabl, vftabl_addr, sizeof(kdb_vftabl));
kdb_setup_opt_functions(lib);
- status = lib->vftabl.init_library(KRB5_KDB_DAL_VERSION);
+ status = lib->vftabl.init_library();
if (status)
goto cleanup;
@@ -389,10 +389,16 @@ kdb_load_library(krb5_context kcontext, char *lib_name, db_library * lib)
goto clean_n_exit;
}
+ if (((kdb_vftabl *)vftabl_addrs[0])->maj_ver !=
+ KRB5_KDB_DAL_MAJOR_VERSION) {
+ status = KRB5_KDB_DBTYPE_MISMATCH;
+ goto clean_n_exit;
+ }
+
memcpy(&(*lib)->vftabl, vftabl_addrs[0], sizeof(kdb_vftabl));
kdb_setup_opt_functions(*lib);
- if ((status = (*lib)->vftabl.init_library(KRB5_KDB_DAL_VERSION)))
+ if ((status = (*lib)->vftabl.init_library()))
goto clean_n_exit;
clean_n_exit: