Print this page
OS-5440 pfexec and the case of the missing error message
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>

*** 37,46 **** --- 37,48 ---- #include <sys/systm.h> #include <sys/sysmacros.h> #include <sys/pathname.h> #include <sys/varargs.h> #include <sys/zone.h> + #include <sys/cmn_err.h> + #include <sys/sdt.h> #include <netinet/in.h> #define ROUNDUP(a, n) (((a) + ((n) - 1)) & ~((n) - 1)) static kmutex_t klpd_mutex;
*** 858,869 **** mutex_enter(&myzone->zone_lock); if ((pfd = myzone->zone_pfexecd) != NULL) klpd_hold(pfd); mutex_exit(&myzone->zone_lock); ! if (pfd == NULL) return (0); if (pfd->klpd_door_pid == curproc->p_pid) { klpd_rele(pfd); return (0); } --- 860,876 ---- mutex_enter(&myzone->zone_lock); if ((pfd = myzone->zone_pfexecd) != NULL) klpd_hold(pfd); mutex_exit(&myzone->zone_lock); ! if (pfd == NULL) { ! DTRACE_PROBE2(pfexecd__not__running, ! zone_t *, myzone, char *, rpnp->pn_path); ! uprintf("pfexecd not running; pid %d privileges not " ! "elevated\n", curproc->p_pid); return (0); + } if (pfd->klpd_door_pid == curproc->p_pid) { klpd_rele(pfd); return (0); }
*** 894,903 **** --- 901,913 ---- case EBADF: /* FALLTHROUGH */ case EINTR: /* FALLTHROUGH */ default: + DTRACE_PROBE4(pfexecd__failure, + int, dres, zone_t *, myzone, + char *, rpnp->pn_path, klpd_reg_t *, pfd); goto out; } } prp = (pfexec_reply_t *)da.rbuf;