From patchwork Thu Apr 19 19:55:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 10351507 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1404D6053F for ; Thu, 19 Apr 2018 19:55:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 07024284C9 for ; Thu, 19 Apr 2018 19:55:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EFF9828515; Thu, 19 Apr 2018 19:55:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 53AAD284C9 for ; Thu, 19 Apr 2018 19:55:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752558AbeDSTze (ORCPT ); Thu, 19 Apr 2018 15:55:34 -0400 Received: from mx2.suse.de ([195.135.220.15]:38436 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753492AbeDSTzd (ORCPT ); Thu, 19 Apr 2018 15:55:33 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id E8546AF0D; Thu, 19 Apr 2018 19:55:32 +0000 (UTC) From: Petr Vorel To: ltp@lists.linux.it Cc: Petr Vorel , Mimi Zohar , linux-integrity@vger.kernel.org Subject: [RFC PATCH v3 10/10] ima/ima_mmap: Rewrite to new library Date: Thu, 19 Apr 2018 21:55:03 +0200 Message-Id: <20180419195503.7194-11-pvorel@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180419195503.7194-1-pvorel@suse.cz> References: <20180419195503.7194-1-pvorel@suse.cz> Sender: linux-integrity-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-integrity@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Filename passed as getopt parameter. Signed-off-by: Petr Vorel --- .../kernel/security/integrity/ima/src/ima_mmap.c | 75 +++++++++++----------- .../security/integrity/ima/tests/ima_violations.sh | 2 +- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/testcases/kernel/security/integrity/ima/src/ima_mmap.c b/testcases/kernel/security/integrity/ima/src/ima_mmap.c index 9045e79a0..5bc688bd4 100644 --- a/testcases/kernel/security/integrity/ima/src/ima_mmap.c +++ b/testcases/kernel/security/integrity/ima/src/ima_mmap.c @@ -14,48 +14,49 @@ * Open and mmap a file and sleep. Another process will open the * mmapped file in read mode, resulting in a open_writer violation. */ -#include -#include -#include -#include -#include -#include -#include "test.h" -char *TCID = "ima_mmap"; -int TST_TOTAL = 1; +#include "tst_test.h" #define SLEEP_AFTER_CLOSE 3 +#define MMAPSIZE 1024 -int main(int argc, char *argv[]) +static char *filename; +static void *file; +static int fd; + +static struct tst_option options[] = { + {"f:", &filename, + "-f file File to mmap"}, + {NULL, NULL, NULL} +}; + +static void cleanup(void) +{ + if (file) + SAFE_MUNMAP(file, MMAPSIZE); + + if (fd > 0) + SAFE_CLOSE(fd); +} + +static void run(void) { - int fd; - void *file; - char *filename; - - if (argc != 2) - printf("%s: filename\n", argv[1]); - filename = argv[1]; - - fd = open(filename, O_CREAT | O_RDWR, S_IRWXU); - if (fd < 0) { - perror("open"); - return (-1); - } - - file = mmap(NULL, 1024, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - if (file == (void *)-1) { - perror("mmap"); - return (-1); - } - close(fd); - - tst_resm(TINFO, "sleep %ds", SLEEP_AFTER_CLOSE); + if (!filename) + tst_brk(TBROK, "Usage: %s -f filename", TCID); + + fd = SAFE_OPEN(filename, O_CREAT | O_RDWR, S_IRWXU); + + file = SAFE_MMAP(NULL, MMAPSIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + SAFE_CLOSE(fd); + + tst_res(TINFO, "sleep %ds", SLEEP_AFTER_CLOSE); sleep(SLEEP_AFTER_CLOSE); - if (munmap(file, 1024) < 0) { - perror("unmap"); - return (-1); - } - tst_exit(); + tst_res(TPASS, "test completed"); } + +static struct tst_test test = { + .options = options, + .test_all = run, + .cleanup = cleanup, +}; diff --git a/testcases/kernel/security/integrity/ima/tests/ima_violations.sh b/testcases/kernel/security/integrity/ima/tests/ima_violations.sh index 8742f4593..f3f40d455 100755 --- a/testcases/kernel/security/integrity/ima/tests/ima_violations.sh +++ b/testcases/kernel/security/integrity/ima/tests/ima_violations.sh @@ -142,7 +142,7 @@ test3() echo 'testing testing' > $FILE - ima_mmap $FILE & + ima_mmap -f $FILE & # wait for violations appear in logs tst_sleep 1s