git: 38f5f2a4af5d - main - sysctl vm.objects/vm.swap_objects: do not fill vnode info if jailed
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 16 Jan 2024 20:16:00 UTC
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=38f5f2a4af5daeec7f13d39cad1ff4dc90da52d8 commit 38f5f2a4af5daeec7f13d39cad1ff4dc90da52d8 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2024-01-13 01:46:04 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-01-16 20:15:39 +0000 sysctl vm.objects/vm.swap_objects: do not fill vnode info if jailed Reported by: Shawn Webb via markj Reviewed by: jhb, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/vm/vm_object.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 1dd6878cf4ab..905df5454355 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -67,6 +67,7 @@ #include <sys/systm.h> #include <sys/blockcount.h> #include <sys/cpuset.h> +#include <sys/jail.h> #include <sys/limits.h> #include <sys/lock.h> #include <sys/mman.h> @@ -2515,6 +2516,7 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) vm_page_t m; u_long sp; int count, error; + bool want_path; if (req->oldptr == NULL) { /* @@ -2533,6 +2535,7 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) count * 11 / 10)); } + want_path = !(swap_only || jailed(curthread->td_ucred)); kvo = malloc(sizeof(*kvo), M_TEMP, M_WAITOK | M_ZERO); error = 0; @@ -2584,7 +2587,8 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) freepath = NULL; fullpath = ""; vp = NULL; - kvo->kvo_type = vm_object_kvme_type(obj, swap_only ? NULL : &vp); + kvo->kvo_type = vm_object_kvme_type(obj, want_path ? &vp : + NULL); if (vp != NULL) { vref(vp); } else if ((obj->flags & OBJ_ANON) != 0) {