summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2017-04-15 15:12:25 +0000
committerdchagin <dchagin@FreeBSD.org>2017-04-15 15:12:25 +0000
commitf8f0a0cde5408c3e9f8433bee977d11cf30ca559 (patch)
treedb2badb34fd7ac448ca3d2dc61e2dd0d6369df70
parent92fe6dbe06a92e3b53c56202f180cfcd6436bd0e (diff)
downloadFreeBSD-src-f8f0a0cde5408c3e9f8433bee977d11cf30ca559.zip
FreeBSD-src-f8f0a0cde5408c3e9f8433bee977d11cf30ca559.tar.gz
MFC r314867:
Linux kernel does not export to the user space ipc_perm.mode values other than S_IRWXUGO (0777).
-rw-r--r--sys/compat/linux/linux_ipc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_ipc.c b/sys/compat/linux/linux_ipc.c
index c85dfb0..a8c5509 100644
--- a/sys/compat/linux/linux_ipc.c
+++ b/sys/compat/linux/linux_ipc.c
@@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$");
#include <sys/msg.h>
#include <sys/sem.h>
#include <sys/shm.h>
+#include <sys/stat.h>
#include "opt_compat.h"
@@ -151,7 +152,7 @@ bsd_to_linux_ipc_perm(struct ipc_perm *bpp, struct l_ipc64_perm *lpp)
lpp->gid = bpp->gid;
lpp->cuid = bpp->cuid;
lpp->cgid = bpp->cgid;
- lpp->mode = bpp->mode;
+ lpp->mode = bpp->mode & (S_IRWXU|S_IRWXG|S_IRWXO);
lpp->seq = bpp->seq;
}
OpenPOWER on IntegriCloud