summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2015-02-26 12:29:46 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2015-02-26 12:29:46 +0000
commit1b128497572fd458f0654ba6ab1d48de977edb31 (patch)
tree907a712ca84aff76cb44332fcb6f5119705891a0 /usr/src
parent951211ad1865c5ba0a9b52d15f18a35d976badef (diff)
parentda5086c104e170d3832a3e1782dc8617061c7fc6 (diff)
downloadillumos-joyent-1b128497572fd458f0654ba6ab1d48de977edb31.tar.gz
[illumos-gate merge]
commit da5086c104e170d3832a3e1782dc8617061c7fc6 443 auditset SMF not able to start in non-global zones commit ce926fbb3eac0337e32c8855d5843ab73a07c345 4598 fmd(1m): redzone violation: write past end of buffer commit d907f8b938aec9d8b57fdb15c241b98641b8b052 5397 pfiles slow with many open sockets commit eb459a53dd5ee2db4c6c3eb63fe988a901174fc2 872 remove duplicate daemon() definitions (backward compatibility)
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/auditset/svc-auditset.c12
-rw-r--r--usr/src/cmd/fm/fmd/common/fmd_trace.c3
-rw-r--r--usr/src/lib/libproc/common/Pfdinfo.c18
-rw-r--r--usr/src/lib/libresolv2/common/mapfile-vers1
4 files changed, 28 insertions, 6 deletions
diff --git a/usr/src/cmd/auditset/svc-auditset.c b/usr/src/cmd/auditset/svc-auditset.c
index 4c01f278f8..cc2b8482d2 100644
--- a/usr/src/cmd/auditset/svc-auditset.c
+++ b/usr/src/cmd/auditset/svc-auditset.c
@@ -30,6 +30,7 @@
#include <audit_scf.h>
#include <bsm/adt.h>
#include <bsm/libbsm.h>
+#include <zone.h>
#include <errno.h>
#include <locale.h>
#include <stdio.h>
@@ -67,6 +68,7 @@ main(void)
{
char *auditset_fmri;
char *mask_cfg;
+ uint32_t policy;
(void) setlocale(LC_ALL, "");
(void) textdomain(TEXT_DOMAIN);
@@ -92,6 +94,16 @@ main(void)
return (SMF_EXIT_OK);
}
+ /* check the audit policy */
+ if (auditon(A_GETPOLICY, (caddr_t)&policy, 0) == -1) {
+ (void) printf("Could not read audit policy: %s\n",
+ strerror(errno));
+ return (SMF_EXIT_ERR_OTHER);
+ }
+
+ if (!(policy & AUDIT_PERZONE) && (getzoneid() != GLOBAL_ZONEID))
+ return (SMF_EXIT_OK);
+
/* update attributable mask */
if (!do_getflags_scf(&mask_cfg) || mask_cfg == NULL) {
(void) printf("Could not get configured attributable audit "
diff --git a/usr/src/cmd/fm/fmd/common/fmd_trace.c b/usr/src/cmd/fm/fmd/common/fmd_trace.c
index 2bb0187cd3..bea6e8d450 100644
--- a/usr/src/cmd/fm/fmd/common/fmd_trace.c
+++ b/usr/src/cmd/fm/fmd/common/fmd_trace.c
@@ -24,8 +24,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/sysmacros.h>
@@ -154,6 +152,7 @@ fmd_trace_full(fmd_tracebuf_t *tbp, uint_t tag, const char *format, va_list ap)
}
(void) getcontext(&uc);
+ trp->tr_depth = 0;
trp->tr_tag = tbp->tb_frames; /* for use by fmd_trace_frame() */
(void) walkcontext(&uc, (int (*)())fmd_trace_frame, trp);
diff --git a/usr/src/lib/libproc/common/Pfdinfo.c b/usr/src/lib/libproc/common/Pfdinfo.c
index 124439773b..27264091f8 100644
--- a/usr/src/lib/libproc/common/Pfdinfo.c
+++ b/usr/src/lib/libproc/common/Pfdinfo.c
@@ -134,10 +134,20 @@ load_fdinfo(struct ps_prochandle *P)
info->pr_offset = pr_llseek(P, fd, 0, SEEK_CUR);
/* attempt to determine the path to it */
- (void) snprintf(path, sizeof (path),
- "%s/%d/path/%d", procfs_path, (int)P->pid, fd);
- len = readlink(path, info->pr_path,
- sizeof (info->pr_path) - 1);
+ switch (info->pr_mode & S_IFMT) {
+ case S_IFDOOR:
+ case S_IFSOCK:
+ /* not applicable */
+ len = -1;
+ break;
+ default:
+ (void) snprintf(path, sizeof (path),
+ "%s/%d/path/%d", procfs_path, (int)P->pid,
+ fd);
+ len = readlink(path, info->pr_path,
+ sizeof (info->pr_path) - 1);
+ break;
+ }
if (len < 0) {
info->pr_path[0] = 0;
diff --git a/usr/src/lib/libresolv2/common/mapfile-vers b/usr/src/lib/libresolv2/common/mapfile-vers
index cd2b90ad2c..cc19f12da1 100644
--- a/usr/src/lib/libresolv2/common/mapfile-vers
+++ b/usr/src/lib/libresolv2/common/mapfile-vers
@@ -130,6 +130,7 @@ SYMBOL_VERSION SUNWprivate_2.1 {
__ctl_sendhelp;
__ctl_server;
__ctl_setcsctx;
+ daemon { TYPE = FUNCTION; FILTER = libc.so.1 };
dn_count_labels;
__dn_count_labels;
dn_skipname;