[LTP] [PATCH] syscalls/shmget03: Stat and skip existing shared segments
Ian May
ian.s.may@gmail.com
Wed Aug 4 02:42:16 CEST 2021
From: Ian May <ian.s.may@gmail.com>
Run a SHM_STAT prior to the creation of the shared memory segment.
This allows for not failing unexpectedly and still exhausting the
proper max shared segments.
Signed-off-by: Ian May <ian.s.may@gmail.com>
---
testcases/kernel/syscalls/ipc/shmget/shmget03.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/testcases/kernel/syscalls/ipc/shmget/shmget03.c b/testcases/kernel/syscalls/ipc/shmget/shmget03.c
index efbc465e1..fe91b6191 100644
--- a/testcases/kernel/syscalls/ipc/shmget/shmget03.c
+++ b/testcases/kernel/syscalls/ipc/shmget/shmget03.c
@@ -34,6 +34,7 @@ static void verify_shmget(void)
static void setup(void)
{
int res, num;
+ struct shmid_ds buf;
shmkey = GETIPCKEY();
@@ -41,6 +42,8 @@ static void setup(void)
queues = SAFE_MALLOC(maxshms * sizeof(int));
for (num = 0; num < maxshms; num++) {
+ if(shmctl(num, SHM_STAT, &buf) != -1)
+ continue;
res = shmget(shmkey + num, SHM_SIZE, IPC_CREAT | IPC_EXCL | SHM_RW);
if (res == -1)
tst_brk(TBROK | TERRNO, "shmget failed unexpectedly");
--
2.25.1
More information about the ltp
mailing list