summaryrefslogtreecommitdiffstats
path: root/sys/compat/linprocfs
diff options
context:
space:
mode:
authorpluknet <pluknet@FreeBSD.org>2011-06-17 07:30:56 +0000
committerpluknet <pluknet@FreeBSD.org>2011-06-17 07:30:56 +0000
commit108671f8107f11abb39794484ddd7f68d4f1991d (patch)
tree3fb9d4d7bde28d6778ea66a822985a4fe9fa2cce /sys/compat/linprocfs
parenta262e24ff4cc1d41e01cbf14b859f5e0b541db03 (diff)
downloadFreeBSD-src-108671f8107f11abb39794484ddd7f68d4f1991d.zip
FreeBSD-src-108671f8107f11abb39794484ddd7f68d4f1991d.tar.gz
Return empty cmdline/environ string for processes with kernel address
space. This is consistent with the behavior in linux. PR: kern/157871 Reported by: Petr Salinger <Petr Salinger att seznam cz> Verified on: GNU/kFreeBSD debian 8.2-1-amd64 (by reporter) Reviewed by: kib (some time ago) MFC after: 2 weeks
Diffstat (limited to 'sys/compat/linprocfs')
-rw-r--r--sys/compat/linprocfs/linprocfs.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index ddbd8b4..692c5a3 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -1049,6 +1049,15 @@ linprocfs_doproccmdline(PFS_FILL_ARGS)
PROC_UNLOCK(p);
return (ret);
}
+
+ /*
+ * Mimic linux behavior and pass only processes with usermode
+ * address space as valid. Return zero silently otherwize.
+ */
+ if (p->p_vmspace == &vmspace0) {
+ PROC_UNLOCK(p);
+ return (0);
+ }
if (p->p_args != NULL) {
sbuf_bcpy(sb, p->p_args->ar_args, p->p_args->ar_length);
PROC_UNLOCK(p);
@@ -1073,6 +1082,15 @@ linprocfs_doprocenviron(PFS_FILL_ARGS)
PROC_UNLOCK(p);
return (ret);
}
+
+ /*
+ * Mimic linux behavior and pass only processes with usermode
+ * address space as valid. Return zero silently otherwize.
+ */
+ if (p->p_vmspace == &vmspace0) {
+ PROC_UNLOCK(p);
+ return (0);
+ }
PROC_UNLOCK(p);
ret = linprocfs_doargv(td, p, sb, ps_string_env);
OpenPOWER on IntegriCloud