summaryrefslogtreecommitdiffstats
path: root/src/ccapi/lib/ccapi_v2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ccapi/lib/ccapi_v2.c')
-rw-r--r--src/ccapi/lib/ccapi_v2.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ccapi/lib/ccapi_v2.c b/src/ccapi/lib/ccapi_v2.c
index 3050fd1e6..ffeb1d694 100644
--- a/src/ccapi/lib/ccapi_v2.c
+++ b/src/ccapi/lib/ccapi_v2.c
@@ -450,6 +450,7 @@ cc_result cc_set_principal (apiCB *in_context,
{
cc_result err = ccNoError;
cc_uint32 version;
+ cc_uint32 compat_version;
if (!in_context ) { err = cci_check_error (ccErrBadParam); }
if (!io_ccache ) { err = cci_check_error (ccErrBadParam); }
@@ -460,6 +461,14 @@ cc_result cc_set_principal (apiCB *in_context,
}
if (!err) {
+ err = cci_ccache_get_compat_version (io_ccache, &compat_version);
+ }
+
+ if (!err && version != compat_version) {
+ err = cci_check_error (ccErrBadCredentialsVersion);
+ }
+
+ if (!err) {
err = ccapi_ccache_set_principal (io_ccache, version, in_principal);
}