summaryrefslogtreecommitdiffstats
path: root/usr.bin/fstat/fstat.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/fstat/fstat.c')
-rw-r--r--usr.bin/fstat/fstat.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/usr.bin/fstat/fstat.c b/usr.bin/fstat/fstat.c
index a20469e..86eee92 100644
--- a/usr.bin/fstat/fstat.c
+++ b/usr.bin/fstat/fstat.c
@@ -106,6 +106,7 @@ __FBSDID("$FreeBSD$");
#define RDIR -3
#define TRACE -4
#define MMAP -5
+#define JDIR -6
DEVS *devs;
@@ -309,6 +310,9 @@ int Pid;
case MMAP: \
printf(" mmap"); \
break; \
+ case JDIR: \
+ printf(" jail"); \
+ break; \
default: \
printf(" %4d", i); \
break; \
@@ -345,6 +349,11 @@ dofiles(struct kinfo_proc *kp)
*/
vtrans(filed.fd_cdir, CDIR, FREAD);
/*
+ * jail root, if any.
+ */
+ if (filed.fd_jdir)
+ vtrans(filed.fd_jdir, JDIR, FREAD);
+ /*
* ktrace vnode, if one
*/
if (kp->ki_tracep)
@@ -358,6 +367,12 @@ dofiles(struct kinfo_proc *kp)
* open files
*/
#define FPSIZE (sizeof (struct file *))
+#define MAX_LASTFILE (0x1000000)
+
+ /* Sanity check on filed.fd_lastfile */
+ if (filed.fd_lastfile <= -1 || filed.fd_lastfile > MAX_LASTFILE)
+ return;
+
ALLOC_OFILES(filed.fd_lastfile+1);
if (!KVM_READ(filed.fd_ofiles, ofiles,
(filed.fd_lastfile+1) * FPSIZE)) {
OpenPOWER on IntegriCloud