aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Biernacki <kaktus@FreeBSD.org>2026-05-30 12:15:21 +0000
committerPawel Biernacki <kaktus@FreeBSD.org>2026-05-30 19:52:58 +0000
commita64148e21bb4ac976345cbedbd32942f97f07cc1 (patch)
tree26ecb3de5b2f3310b96e7cd529aa3bee8c727b10
parenteda74fe47993f1d62e7c110850def6960b55291e (diff)
linux: Add support for PR_SET_VMA to prctl(2)
Implement dummy support for PR_SET_VMA with PR_SET_VMA_ANON_NAME in prctl(2). This prevents applications from receiving EINVAL when attempting to name anonymous memory regions.
-rw-r--r--sys/compat/linux/linux_misc.c7
-rw-r--r--sys/compat/linux/linux_misc.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index f89758f41ba0..eafba4f4bd19 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -1835,6 +1835,13 @@ linux_prctl(struct thread *td, struct linux_prctl_args *args)
linux_msg(td, "unsupported prctl PR_SET_PTRACER");
error = EINVAL;
break;
+ case LINUX_PR_SET_VMA:
+ if (args->arg2 != LINUX_PR_SET_VMA_ANON_NAME) {
+ linux_msg(td, "unsupported prctl PR_SET_VMA attr %ju",
+ (uintmax_t)args->arg2);
+ error = EINVAL;
+ }
+ break;
default:
linux_msg(td, "unsupported prctl option %d", args->option);
error = EINVAL;
diff --git a/sys/compat/linux/linux_misc.h b/sys/compat/linux/linux_misc.h
index 2044f23f30ee..196f9372d4bf 100644
--- a/sys/compat/linux/linux_misc.h
+++ b/sys/compat/linux/linux_misc.h
@@ -62,6 +62,8 @@
#define LINUX_PR_SET_NO_NEW_PRIVS 38 /* Set no_new_privs attribute */
#define LINUX_PR_GET_NO_NEW_PRIVS 39 /* Get no_new_privs attribute */
#define LINUX_PR_SET_PTRACER 1499557217
+#define LINUX_PR_SET_VMA 1398164801
+#define LINUX_PR_SET_VMA_ANON_NAME 0
#define LINUX_MAX_COMM_LEN 16 /* Maximum length of the process name. */