diff options
Diffstat (limited to 'src/ccapi/lib/ccapi_v2.c')
| -rw-r--r-- | src/ccapi/lib/ccapi_v2.c | 9 |
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); } |
