diff options
Diffstat (limited to 'usr/src/uts/common/os/contract.c')
-rw-r--r-- | usr/src/uts/common/os/contract.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr/src/uts/common/os/contract.c b/usr/src/uts/common/os/contract.c index 909a6c2860..9e498dc1c7 100644 --- a/usr/src/uts/common/os/contract.c +++ b/usr/src/uts/common/os/contract.c @@ -1542,6 +1542,7 @@ ctmpl_set(ct_template_t *template, ct_kparam_t *kparam, const cred_t *cr) ct_param_t *param = &kparam->param; uint64_t param_value; + param_value = 0; if (param->ctpm_id == CTP_COOKIE || param->ctpm_id == CTP_EV_INFO || param->ctpm_id == CTP_EV_CRITICAL) { @@ -1612,6 +1613,7 @@ ctmpl_get(ct_template_t *template, ct_kparam_t *kparam) ct_param_t *param = &kparam->param; uint64_t *param_value; + param_value = NULL; if (param->ctpm_id == CTP_COOKIE || param->ctpm_id == CTP_EV_INFO || param->ctpm_id == CTP_EV_CRITICAL) { @@ -1626,13 +1628,16 @@ ctmpl_get(ct_template_t *template, ct_kparam_t *kparam) mutex_enter(&template->ctmpl_lock); switch (param->ctpm_id) { case CTP_COOKIE: - *param_value = template->ctmpl_cookie; + if (param_value != NULL) + *param_value = template->ctmpl_cookie; break; case CTP_EV_INFO: - *param_value = template->ctmpl_ev_info; + if (param_value != NULL) + *param_value = template->ctmpl_ev_info; break; case CTP_EV_CRITICAL: - *param_value = template->ctmpl_ev_crit; + if (param_value != NULL) + *param_value = template->ctmpl_ev_crit; break; default: result = template->ctmpl_ops->ctop_get(template, kparam); |