summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/ipc_namespace.h2
-rw-r--r--ipc/mqueue.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
index 1372b566e1e1..bde094ee7b0e 100644
--- a/include/linux/ipc_namespace.h
+++ b/include/linux/ipc_namespace.h
@@ -95,9 +95,11 @@ extern int mq_init_ns(struct ipc_namespace *ns);
#define DFLT_QUEUESMAX 256 /* max number of message queues */
#define HARD_QUEUESMAX 1024
#define MIN_MSGMAX 1
+#define DFLT_MSG 10U
#define DFLT_MSGMAX 10 /* max number of messages in each queue */
#define HARD_MSGMAX (32768*sizeof(void *)/4)
#define MIN_MSGSIZEMAX 128
+#define DFLT_MSGSIZE 8192U
#define DFLT_MSGSIZEMAX 8192 /* max message size */
#define HARD_MSGSIZEMAX (8192*128)
#else
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index a2757d4ab773..b103022179a3 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -144,8 +144,9 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
info->qsize = 0;
info->user = NULL; /* set when all is ok */
memset(&info->attr, 0, sizeof(info->attr));
- info->attr.mq_maxmsg = ipc_ns->mq_msg_max;
- info->attr.mq_msgsize = ipc_ns->mq_msgsize_max;
+ info->attr.mq_maxmsg = min(ipc_ns->mq_msg_max, DFLT_MSG);
+ info->attr.mq_msgsize =
+ min(ipc_ns->mq_msgsize_max, DFLT_MSGSIZE);
if (attr) {
info->attr.mq_maxmsg = attr->mq_maxmsg;
info->attr.mq_msgsize = attr->mq_msgsize;