diff -wpruN --no-dereference '--exclude=*.orig' a~/plugins/sudoers/bsm_audit.c a/plugins/sudoers/bsm_audit.c --- a~/plugins/sudoers/bsm_audit.c 1970-01-01 00:00:00 +++ a/plugins/sudoers/bsm_audit.c 1970-01-01 00:00:00 @@ -40,6 +40,8 @@ #include #include +#define AUE_sudo 6650 + /* * Solaris auditon() returns EINVAL if BSM audit not configured. * OpenBSM returns ENOSYS for unimplemented options. @@ -141,8 +143,8 @@ bsm_audit_success(const struct sudoers_c } if (getaudit_addr(&ainfo_addr, sizeof(ainfo_addr)) == 0) { tok = au_to_subject_ex(auid, ctx->user.euid, ctx->user.egid, - ctx->user.uid, ctx->user.gid, ctx->user.pid, ctx->user.pid, - &ainfo_addr.ai_termid); + ctx->user.uid, ctx->user.gid, ctx->user.pid, + ainfo_addr.ai_asid, &ainfo_addr.ai_termid); #ifdef BSM_AUDIT_COMPAT } else if (errno == ENOSYS) { auditinfo_t ainfo; @@ -155,8 +157,8 @@ bsm_audit_success(const struct sudoers_c debug_return_int(-1); } tok = au_to_subject(auid, ctx->user.euid, ctx->user.egid, - ctx->user.uid, ctx->user.gid, ctx->user.pid, ctx->user.pid, - &ainfo.ai_termid); + ctx->user.uid, ctx->user.gid, ctx->user.pid, + ainfo_addr.ai_asid, &ainfo.ai_termid); #endif /* BSM_AUDIT_COMPAT */ } else { sudo_warn("getaudit_addr"); @@ -228,8 +230,8 @@ bsm_audit_failure(const struct sudoers_c } if (getaudit_addr(&ainfo_addr, sizeof(ainfo_addr)) == 0) { tok = au_to_subject_ex(auid, ctx->user.euid, ctx->user.egid, - ctx->user.uid, ctx->user.gid, ctx->user.pid, ctx->user.pid, - &ainfo_addr.ai_termid); + ctx->user.uid, ctx->user.gid, ctx->user.pid, + ainfo_addr.ai_asid, &ainfo_addr.ai_termid); #ifdef BSM_AUDIT_COMPAT } else if (errno == ENOSYS) { auditinfo_t ainfo; @@ -239,8 +241,8 @@ bsm_audit_failure(const struct sudoers_c debug_return_int(-1); } tok = au_to_subject(auid, ctx->user.euid, ctx->user.egid, - ctx->user.uid, ctx->user.gid, ctx->user.pid, ctx->user.pid, - &ainfo.ai_termid); + ctx->user.uid, ctx->user.gid, ctx->user.pid, + ainfo_addr.ai_asid, &ainfo.ai_termid); #endif /* BSM_AUDIT_COMPAT */ } else { sudo_warn("getaudit_addr");