Commit de62bf76 authored by Andrei Vagin's avatar Andrei Vagin

test/ipc_namespace: set random values less that IPCMNI for *mni sysctls

There are a few patches in linux-next, which added this check:
    ipc: IPCMNI limit check for semmni
    ipc: IPCMNI limit check for msgmni and shmmni
Signed-off-by: 's avatarAndrei Vagin <avagin@gmail.com>
parent c487ad18
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <linux/sem.h> #include <linux/sem.h>
#include <linux/shm.h> #include <linux/shm.h>
#include <fcntl.h> #include <fcntl.h>
#include <limits.h>
#include "zdtmtst.h" #include "zdtmtst.h"
...@@ -237,6 +238,8 @@ static int rand_ipc_sysctl(char *name, unsigned int val) ...@@ -237,6 +238,8 @@ static int rand_ipc_sysctl(char *name, unsigned int val)
return 0; return 0;
} }
#define MAX_MNI (1<<15)
static int rand_ipc_sem(void) static int rand_ipc_sem(void)
{ {
int fd; int fd;
...@@ -249,8 +252,8 @@ static int rand_ipc_sem(void) ...@@ -249,8 +252,8 @@ static int rand_ipc_sem(void)
pr_perror("Can't open %s", name); pr_perror("Can't open %s", name);
return fd; return fd;
} }
sprintf(buf, "%d %d %d %d\n", (unsigned)lrand48(), (unsigned)lrand48(), sprintf(buf, "%d %d %d %d\n", (unsigned) lrand48(), (unsigned) lrand48(),
(unsigned)lrand48(), (unsigned)lrand48()); (unsigned) lrand48(), (unsigned) lrand48() % MAX_MNI);
ret = write(fd, buf, 128); ret = write(fd, buf, 128);
if (ret < 0) { if (ret < 0) {
pr_perror("Can't write %s: %d", name, errno); pr_perror("Can't write %s: %d", name, errno);
...@@ -260,8 +263,6 @@ static int rand_ipc_sem(void) ...@@ -260,8 +263,6 @@ static int rand_ipc_sem(void)
return 0; return 0;
} }
#define INT_MAX ((int)(~0U>>1))
static int rand_ipc_ns(void) static int rand_ipc_ns(void)
{ {
int ret; int ret;
...@@ -272,7 +273,7 @@ static int rand_ipc_ns(void) ...@@ -272,7 +273,7 @@ static int rand_ipc_ns(void)
if (!ret) if (!ret)
ret = rand_ipc_sysctl("/proc/sys/kernel/msgmnb", (unsigned)lrand48()); ret = rand_ipc_sysctl("/proc/sys/kernel/msgmnb", (unsigned)lrand48());
if (!ret) if (!ret)
ret = rand_ipc_sysctl("/proc/sys/kernel/msgmni", (unsigned)lrand48()); ret = rand_ipc_sysctl("/proc/sys/kernel/msgmni", (unsigned)lrand48() % MAX_MNI);
if (!ret) if (!ret)
ret = rand_ipc_sysctl("/proc/sys/kernel/auto_msgmni", 0); ret = rand_ipc_sysctl("/proc/sys/kernel/auto_msgmni", 0);
if (!ret && (unsigned)lrand48() % 2) if (!ret && (unsigned)lrand48() % 2)
...@@ -286,7 +287,7 @@ static int rand_ipc_ns(void) ...@@ -286,7 +287,7 @@ static int rand_ipc_ns(void)
if (!ret) if (!ret)
ret = rand_ipc_sysctl("/proc/sys/kernel/shmall", (unsigned)lrand48()); ret = rand_ipc_sysctl("/proc/sys/kernel/shmall", (unsigned)lrand48());
if (!ret) if (!ret)
ret = rand_ipc_sysctl("/proc/sys/kernel/shmmni", (unsigned)lrand48()); ret = rand_ipc_sysctl("/proc/sys/kernel/shmmni", (unsigned)lrand48() % MAX_MNI);
if (!ret) if (!ret)
ret = rand_ipc_sysctl("/proc/sys/kernel/shm_rmid_forced", (unsigned)lrand48() & 1); ret = rand_ipc_sysctl("/proc/sys/kernel/shm_rmid_forced", (unsigned)lrand48() & 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment