author | April Chin <april.chin@oracle.com> |
Mon, 15 Apr 2013 14:29:47 -0700 | |
branch | s11u1-sru |
changeset 2570 | 40da38c985e9 |
parent 840 | 926eb95ceab3 |
permissions | -rw-r--r-- |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
1 |
au_* calls need correct parameters. |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
2 |
This legacy auditing will later be replaced by Solaris adt_* calls, |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
3 |
so in the future, use of bsm_audit.c and configuring --with-bsm-audit will |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
4 |
be removed. |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
5 |
|
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
6 |
--- sudo-1.8.6p7.orig/plugins/sudoers/bsm_audit.c 2012-09-18 06:56:29.000000000 -0700 |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
7 |
+++ sudo-1.8.6p7/plugins/sudoers/bsm_audit.c 2013-03-07 10:18:20.309947000 -0800 |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
8 |
@@ -31,8 +31,8 @@ |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
9 |
#include <unistd.h> |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
10 |
|
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
11 |
#include "gettext.h" |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
12 |
-#include "error.h" |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
13 |
#include "sudo_debug.h" |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
14 |
+#include "error.h" |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
15 |
#include "bsm_audit.h" |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
16 |
|
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
17 |
/* |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
18 |
@@ -103,7 +103,7 @@ bsm_audit_success(char **exec_args) |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
19 |
error(1, _("au_open: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
20 |
if (getaudit_addr(&ainfo_addr, sizeof(ainfo_addr)) == 0) { |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
21 |
tok = au_to_subject_ex(auid, geteuid(), getegid(), getuid(), |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
22 |
- getuid(), pid, pid, &ainfo_addr.ai_termid); |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
23 |
+ getgid(), pid, ainfo_addr.ai_asid, &ainfo_addr.ai_termid); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
24 |
} else if (errno == ENOSYS) { |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
25 |
/* |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
26 |
* NB: We should probably watch out for ERANGE here. |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
27 |
@@ -111,7 +111,7 @@ bsm_audit_success(char **exec_args) |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
28 |
if (getaudit(&ainfo) < 0) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
29 |
error(1, _("getaudit: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
30 |
tok = au_to_subject(auid, geteuid(), getegid(), getuid(), |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
31 |
- getuid(), pid, pid, &ainfo.ai_termid); |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
32 |
+ getgid(), pid, ainfo.ai_asid, &ainfo.ai_termid); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
33 |
} else |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
34 |
error(1, _("getaudit: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
35 |
if (tok == NULL) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
36 |
@@ -125,7 +125,7 @@ bsm_audit_success(char **exec_args) |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
37 |
if (tok == NULL) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
38 |
error(1, _("au_to_return32: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
39 |
au_write(aufd, tok); |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
40 |
- if (au_close(aufd, 1, AUE_sudo) == -1) |
797
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
41 |
+ if (au_close(aufd, 1, AUE_sudo, PAD_FAILURE) == -1) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
42 |
error(1, _("unable to commit audit record")); |
840
926eb95ceab3
7169436 Problem with utility/sudo
April Chin <april.chin@oracle.com>
parents:
797
diff
changeset
|
43 |
debug_return; |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
44 |
} |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
45 |
@@ -147,7 +147,7 @@ bsm_audit_failure(char **exec_args, char |
797
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
46 |
/* |
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
47 |
* If we are not auditing, don't cut an audit record; just return. |
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
48 |
*/ |
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
49 |
- if (auditon(A_GETCOND, &au_cond, sizeof(long)) < 0) { |
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
50 |
+ if (auditon(A_GETCOND, (caddr_t)&au_cond, sizeof(long)) < 0) { |
ef9656f77cca
7140964 Problem with utility/sudo
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
447
diff
changeset
|
51 |
if (errno == AUDIT_NOT_CONFIGURED) |
840
926eb95ceab3
7169436 Problem with utility/sudo
April Chin <april.chin@oracle.com>
parents:
797
diff
changeset
|
52 |
debug_return; |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
53 |
error(1, _("Could not determine audit condition")); |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
54 |
@@ -162,12 +162,12 @@ bsm_audit_failure(char **exec_args, char |
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
55 |
error(1, _("au_open: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
56 |
if (getaudit_addr(&ainfo_addr, sizeof(ainfo_addr)) == 0) { |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
57 |
tok = au_to_subject_ex(auid, geteuid(), getegid(), getuid(), |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
58 |
- getuid(), pid, pid, &ainfo_addr.ai_termid); |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
59 |
+ getgid(), pid, ainfo_addr.ai_asid, &ainfo_addr.ai_termid); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
60 |
} else if (errno == ENOSYS) { |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
61 |
if (getaudit(&ainfo) < 0) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
62 |
error(1, _("getaudit: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
63 |
tok = au_to_subject(auid, geteuid(), getegid(), getuid(), |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
64 |
- getuid(), pid, pid, &ainfo.ai_termid); |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
65 |
+ getgid(), pid, ainfo.ai_asid, &ainfo.ai_termid); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
66 |
} else |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
67 |
error(1, _("getaudit: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
68 |
if (tok == NULL) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
69 |
@@ -186,7 +186,7 @@ bsm_audit_failure(char **exec_args, char |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
70 |
if (tok == NULL) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
71 |
error(1, _("au_to_return32: failed")); |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
72 |
au_write(aufd, tok); |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
73 |
- if (au_close(aufd, 1, AUE_sudo) == -1) |
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
74 |
+ if (au_close(aufd, 1, AUE_sudo, PAD_FAILURE) == -1) |
2570
40da38c985e9
16424604 Upgrade sudo to 1.8.6p7
April Chin <april.chin@oracle.com>
parents:
840
diff
changeset
|
75 |
error(1, _("unable to commit audit record")); |
840
926eb95ceab3
7169436 Problem with utility/sudo
April Chin <april.chin@oracle.com>
parents:
797
diff
changeset
|
76 |
debug_return; |
447
7ca7b95abd2f
PSARC/2011/252 sudo 1.8.1
Darren J Moffat <Darren.Moffat@Oracle.COM>
parents:
diff
changeset
|
77 |
} |