From: Deven Bowers <deven.desai@linux.microsoft.com> To: agk@redhat.com, axboe@kernel.dk, snitzer@redhat.com, jmorris@namei.org, serge@hallyn.com, zohar@linux.ibm.com, viro@zeniv.linux.org.uk, paul@paul-moore.com, eparis@redhat.com, jannh@google.com, dm-devel@redhat.com, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-audit@redhat.com Cc: tyhicks@linux.microsoft.com, linux-kernel@vger.kernel.org, corbet@lwn.net, sashal@kernel.org, jaskarankhurana@linux.microsoft.com, mdsakib@microsoft.com, nramas@linux.microsoft.com, pasha.tatashin@soleen.com Subject: [RFC PATCH v5 01/11] scripts: add ipe tooling to generate boot policy Date: Tue, 28 Jul 2020 14:36:01 -0700 [thread overview] Message-ID: <20200728213614.586312-2-deven.desai@linux.microsoft.com> (raw) In-Reply-To: <20200728213614.586312-1-deven.desai@linux.microsoft.com> Add a tool for the generation of an IPE policy to be compiled into the kernel. This policy will be enforced until userland deploys and activates a new policy. Signed-off-by: Deven Bowers <deven.desai@linux.microsoft.com> --- MAINTAINERS | 6 ++ scripts/Makefile | 1 + scripts/ipe/Makefile | 2 + scripts/ipe/polgen/.gitignore | 1 + scripts/ipe/polgen/Makefile | 7 ++ scripts/ipe/polgen/polgen.c | 136 ++++++++++++++++++++++++++++++++++ 6 files changed, 153 insertions(+) create mode 100644 scripts/ipe/Makefile create mode 100644 scripts/ipe/polgen/.gitignore create mode 100644 scripts/ipe/polgen/Makefile create mode 100644 scripts/ipe/polgen/polgen.c diff --git a/MAINTAINERS b/MAINTAINERS index d53db30d1365..86450be5437b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8579,6 +8579,12 @@ S: Supported T: git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git F: security/integrity/ima/ +INTEGRITY POLICY ENFORCEMENT (IPE) +M: Deven Bowers <deven.desai@linux.microsoft.com> +L: linux-integrity@vger.kernel.org +S: Supported +F: scripts/ipe/ + INTEL 810/815 FRAMEBUFFER DRIVER M: Antonino Daplas <adaplas@gmail.com> L: linux-fbdev@vger.kernel.org diff --git a/scripts/Makefile b/scripts/Makefile index 95ecf970c74c..b3c1882fd6dd 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -34,6 +34,7 @@ hostprogs += unifdef subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins subdir-$(CONFIG_MODVERSIONS) += genksyms subdir-$(CONFIG_SECURITY_SELINUX) += selinux +subdir-$(CONFIG_SECURITY_IPE) += ipe # Let clean descend into subdirs subdir- += basic dtc gdb kconfig mod diff --git a/scripts/ipe/Makefile b/scripts/ipe/Makefile new file mode 100644 index 000000000000..e87553fbb8d6 --- /dev/null +++ b/scripts/ipe/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +subdir-y := polgen diff --git a/scripts/ipe/polgen/.gitignore b/scripts/ipe/polgen/.gitignore new file mode 100644 index 000000000000..80f32f25d200 --- /dev/null +++ b/scripts/ipe/polgen/.gitignore @@ -0,0 +1 @@ +polgen diff --git a/scripts/ipe/polgen/Makefile b/scripts/ipe/polgen/Makefile new file mode 100644 index 000000000000..a519b594e13c --- /dev/null +++ b/scripts/ipe/polgen/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0 +hostprogs-y := polgen +HOST_EXTRACFLAGS += \ + -I$(srctree)/include \ + -I$(srctree)/include/uapi \ + +always := $(hostprogs-y) diff --git a/scripts/ipe/polgen/polgen.c b/scripts/ipe/polgen/polgen.c new file mode 100644 index 000000000000..a80fffe1b27c --- /dev/null +++ b/scripts/ipe/polgen/polgen.c @@ -0,0 +1,136 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) Microsoft Corporation. All rights reserved. + */ + +#include <stdlib.h> +#include <stddef.h> +#include <stdio.h> +#include <unistd.h> +#include <errno.h> + +static void usage(const char *const name) +{ + printf("Usage: %s OutputFile (PolicyFile)\n", name); + exit(EINVAL); +} + +static int policy_to_buffer(const char *pathname, char **buffer, size_t *size) +{ + int rc = 0; + FILE *fd; + char *lbuf; + size_t fsize; + size_t read; + + fd = fopen(pathname, "r"); + if (!fd) { + rc = errno; + goto out; + } + + fseek(fd, 0, SEEK_END); + fsize = ftell(fd); + rewind(fd); + + lbuf = malloc(fsize); + if (!lbuf) { + rc = ENOMEM; + goto out_close; + } + + read = fread((void *)lbuf, sizeof(*lbuf), fsize, fd); + if (read != fsize) { + rc = -1; + goto out_free; + } + + *buffer = lbuf; + *size = fsize; + fclose(fd); + + return rc; + +out_free: + free(lbuf); +out_close: + fclose(fd); +out: + return rc; +} + +static int write_boot_policy(const char *pathname, const char *buf, size_t size) +{ + FILE *fd; + size_t i; + + fd = fopen(pathname, "w"); + if (!fd) + goto err; + + fprintf(fd, "/* This file is automatically generated."); + fprintf(fd, " Do not edit. */\n"); + fprintf(fd, "#include <stddef.h>\n"); + fprintf(fd, "const char *const ipe_boot_policy =\n"); + + if (!buf || size == 0) { + fprintf(fd, "\tNULL;\n"); + fclose(fd); + return 0; + } + + for (i = 0; i < size; ++i) { + if (i == 0) + fprintf(fd, "\t\""); + + switch (buf[i]) { + case '"': + fprintf(fd, "\\\""); + break; + case '\'': + fprintf(fd, "'"); + break; + case '\n': + fprintf(fd, "\\n\"\n\t\""); + break; + case '\\': + fprintf(fd, "\\\\"); + break; + default: + fprintf(fd, "%c", buf[i]); + } + } + fprintf(fd, "\";\n"); + fclose(fd); + + return 0; + +err: + if (fd) + fclose(fd); + return errno; +} + +int main(int argc, const char *argv[]) +{ + int rc = 0; + size_t len = 0; + char *policy = NULL; + + if (argc < 2) + usage(argv[0]); + + if (argc > 2) { + rc = policy_to_buffer(argv[2], &policy, &len); + if (rc != 0) + goto cleanup; + } + + rc = write_boot_policy(argv[1], policy, len); +cleanup: + if (policy) + free(policy); + if (rc != 0) + perror("An error occurred during policy conversion: "); + return rc; +} -- 2.27.0
WARNING: multiple messages have this Message-ID (diff)
From: Deven Bowers <deven.desai@linux.microsoft.com> To: agk@redhat.com, axboe@kernel.dk, snitzer@redhat.com, jmorris@namei.org, serge@hallyn.com, zohar@linux.ibm.com, viro@zeniv.linux.org.uk, paul@paul-moore.com, eparis@redhat.com, jannh@google.com, dm-devel@redhat.com, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-audit@redhat.com Cc: sashal@kernel.org, pasha.tatashin@soleen.com, mdsakib@microsoft.com, corbet@lwn.net, linux-kernel@vger.kernel.org, nramas@linux.microsoft.com, tyhicks@linux.microsoft.com, jaskarankhurana@linux.microsoft.com Subject: [RFC PATCH v5 01/11] scripts: add ipe tooling to generate boot policy Date: Tue, 28 Jul 2020 14:36:01 -0700 [thread overview] Message-ID: <20200728213614.586312-2-deven.desai@linux.microsoft.com> (raw) In-Reply-To: <20200728213614.586312-1-deven.desai@linux.microsoft.com> Add a tool for the generation of an IPE policy to be compiled into the kernel. This policy will be enforced until userland deploys and activates a new policy. Signed-off-by: Deven Bowers <deven.desai@linux.microsoft.com> --- MAINTAINERS | 6 ++ scripts/Makefile | 1 + scripts/ipe/Makefile | 2 + scripts/ipe/polgen/.gitignore | 1 + scripts/ipe/polgen/Makefile | 7 ++ scripts/ipe/polgen/polgen.c | 136 ++++++++++++++++++++++++++++++++++ 6 files changed, 153 insertions(+) create mode 100644 scripts/ipe/Makefile create mode 100644 scripts/ipe/polgen/.gitignore create mode 100644 scripts/ipe/polgen/Makefile create mode 100644 scripts/ipe/polgen/polgen.c diff --git a/MAINTAINERS b/MAINTAINERS index d53db30d1365..86450be5437b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8579,6 +8579,12 @@ S: Supported T: git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git F: security/integrity/ima/ +INTEGRITY POLICY ENFORCEMENT (IPE) +M: Deven Bowers <deven.desai@linux.microsoft.com> +L: linux-integrity@vger.kernel.org +S: Supported +F: scripts/ipe/ + INTEL 810/815 FRAMEBUFFER DRIVER M: Antonino Daplas <adaplas@gmail.com> L: linux-fbdev@vger.kernel.org diff --git a/scripts/Makefile b/scripts/Makefile index 95ecf970c74c..b3c1882fd6dd 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -34,6 +34,7 @@ hostprogs += unifdef subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins subdir-$(CONFIG_MODVERSIONS) += genksyms subdir-$(CONFIG_SECURITY_SELINUX) += selinux +subdir-$(CONFIG_SECURITY_IPE) += ipe # Let clean descend into subdirs subdir- += basic dtc gdb kconfig mod diff --git a/scripts/ipe/Makefile b/scripts/ipe/Makefile new file mode 100644 index 000000000000..e87553fbb8d6 --- /dev/null +++ b/scripts/ipe/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +subdir-y := polgen diff --git a/scripts/ipe/polgen/.gitignore b/scripts/ipe/polgen/.gitignore new file mode 100644 index 000000000000..80f32f25d200 --- /dev/null +++ b/scripts/ipe/polgen/.gitignore @@ -0,0 +1 @@ +polgen diff --git a/scripts/ipe/polgen/Makefile b/scripts/ipe/polgen/Makefile new file mode 100644 index 000000000000..a519b594e13c --- /dev/null +++ b/scripts/ipe/polgen/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0 +hostprogs-y := polgen +HOST_EXTRACFLAGS += \ + -I$(srctree)/include \ + -I$(srctree)/include/uapi \ + +always := $(hostprogs-y) diff --git a/scripts/ipe/polgen/polgen.c b/scripts/ipe/polgen/polgen.c new file mode 100644 index 000000000000..a80fffe1b27c --- /dev/null +++ b/scripts/ipe/polgen/polgen.c @@ -0,0 +1,136 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) Microsoft Corporation. All rights reserved. + */ + +#include <stdlib.h> +#include <stddef.h> +#include <stdio.h> +#include <unistd.h> +#include <errno.h> + +static void usage(const char *const name) +{ + printf("Usage: %s OutputFile (PolicyFile)\n", name); + exit(EINVAL); +} + +static int policy_to_buffer(const char *pathname, char **buffer, size_t *size) +{ + int rc = 0; + FILE *fd; + char *lbuf; + size_t fsize; + size_t read; + + fd = fopen(pathname, "r"); + if (!fd) { + rc = errno; + goto out; + } + + fseek(fd, 0, SEEK_END); + fsize = ftell(fd); + rewind(fd); + + lbuf = malloc(fsize); + if (!lbuf) { + rc = ENOMEM; + goto out_close; + } + + read = fread((void *)lbuf, sizeof(*lbuf), fsize, fd); + if (read != fsize) { + rc = -1; + goto out_free; + } + + *buffer = lbuf; + *size = fsize; + fclose(fd); + + return rc; + +out_free: + free(lbuf); +out_close: + fclose(fd); +out: + return rc; +} + +static int write_boot_policy(const char *pathname, const char *buf, size_t size) +{ + FILE *fd; + size_t i; + + fd = fopen(pathname, "w"); + if (!fd) + goto err; + + fprintf(fd, "/* This file is automatically generated."); + fprintf(fd, " Do not edit. */\n"); + fprintf(fd, "#include <stddef.h>\n"); + fprintf(fd, "const char *const ipe_boot_policy =\n"); + + if (!buf || size == 0) { + fprintf(fd, "\tNULL;\n"); + fclose(fd); + return 0; + } + + for (i = 0; i < size; ++i) { + if (i == 0) + fprintf(fd, "\t\""); + + switch (buf[i]) { + case '"': + fprintf(fd, "\\\""); + break; + case '\'': + fprintf(fd, "'"); + break; + case '\n': + fprintf(fd, "\\n\"\n\t\""); + break; + case '\\': + fprintf(fd, "\\\\"); + break; + default: + fprintf(fd, "%c", buf[i]); + } + } + fprintf(fd, "\";\n"); + fclose(fd); + + return 0; + +err: + if (fd) + fclose(fd); + return errno; +} + +int main(int argc, const char *argv[]) +{ + int rc = 0; + size_t len = 0; + char *policy = NULL; + + if (argc < 2) + usage(argv[0]); + + if (argc > 2) { + rc = policy_to_buffer(argv[2], &policy, &len); + if (rc != 0) + goto cleanup; + } + + rc = write_boot_policy(argv[1], policy, len); +cleanup: + if (policy) + free(policy); + if (rc != 0) + perror("An error occurred during policy conversion: "); + return rc; +} -- 2.27.0 -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit
next prev parent reply other threads:[~2020-07-28 21:37 UTC|newest] Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-28 21:36 [RFC PATCH v5 00/11] Integrity Policy Enforcement LSM (IPE) Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` Deven Bowers [this message] 2020-07-28 21:36 ` [RFC PATCH v5 01/11] scripts: add ipe tooling to generate boot policy Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 02/11] security: add ipe lsm evaluation loop and audit system Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 03/11] security: add ipe lsm policy parser and policy loading Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 04/11] ipe: add property for trust of boot volume Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 05/11] fs: add security blob and hooks for block_device Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 22:22 ` Casey Schaufler 2020-07-28 22:22 ` Casey Schaufler 2020-07-28 22:40 ` Al Viro 2020-07-28 22:40 ` Al Viro 2020-07-28 23:55 ` Deven Bowers 2020-07-28 23:55 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 06/11] dm-verity: move signature check after tree validation Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:50 ` Eric Biggers 2020-07-28 21:50 ` Eric Biggers 2020-07-28 23:55 ` Deven Bowers 2020-07-28 23:55 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 07/11] dm-verity: add bdev_setsecurity hook for dm-verity signature Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 08/11] ipe: add property for signed dmverity volumes Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 09/11] dm-verity: add bdev_setsecurity hook for root-hash Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 10/11] documentation: add ipe documentation Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 10/12] ipe: add property for dmverity roothash Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 11/11] cleanup: uapi/linux/audit.h Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 11/12] documentation: add ipe documentation Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-07-28 21:36 ` [RFC PATCH v5 12/12] cleanup: uapi/linux/audit.h Deven Bowers 2020-07-28 21:36 ` Deven Bowers 2020-08-02 11:55 ` [RFC PATCH v5 00/11] Integrity Policy Enforcement LSM (IPE) Pavel Machek 2020-08-02 11:55 ` Pavel Machek 2020-08-02 14:03 ` Sasha Levin 2020-08-02 14:03 ` Sasha Levin 2020-08-02 14:31 ` Pavel Machek 2020-08-02 14:31 ` Pavel Machek 2020-08-02 16:43 ` [dm-devel] " James Bottomley 2020-08-02 16:43 ` James Bottomley 2020-08-04 16:07 ` Deven Bowers 2020-08-04 16:07 ` Deven Bowers 2020-08-04 16:07 ` [dm-devel] " Deven Bowers 2020-08-05 15:01 ` James Bottomley 2020-08-05 15:01 ` James Bottomley 2020-08-05 15:01 ` [dm-devel] " James Bottomley 2020-08-05 16:59 ` James Morris 2020-08-05 16:59 ` James Morris 2020-08-05 18:15 ` Mimi Zohar 2020-08-05 18:15 ` Mimi Zohar 2020-08-05 23:51 ` James Morris 2020-08-05 23:51 ` James Morris 2020-08-06 14:33 ` Mimi Zohar 2020-08-06 14:33 ` Mimi Zohar 2020-08-06 14:33 ` Mimi Zohar 2020-08-07 16:41 ` James Morris 2020-08-07 16:41 ` James Morris 2020-08-07 17:31 ` Mimi Zohar 2020-08-07 17:31 ` Mimi Zohar 2020-08-07 18:40 ` Mimi Zohar 2020-08-07 18:40 ` Mimi Zohar 2020-08-10 20:29 ` James Morris 2020-08-10 20:29 ` James Morris 2020-08-08 17:47 ` Chuck Lever 2020-08-08 17:47 ` Chuck Lever 2020-08-09 17:16 ` Mimi Zohar 2020-08-09 17:16 ` Mimi Zohar 2020-08-10 15:35 ` James Bottomley 2020-08-10 15:35 ` James Bottomley 2020-08-10 16:35 ` Mimi Zohar 2020-08-10 16:35 ` Mimi Zohar 2020-08-10 17:13 ` James Bottomley 2020-08-10 17:13 ` James Bottomley 2020-08-10 17:57 ` Mimi Zohar 2020-08-10 17:57 ` Mimi Zohar 2020-08-10 23:36 ` Chuck Lever 2020-08-10 23:36 ` Chuck Lever 2020-08-10 23:36 ` Chuck Lever 2020-08-11 5:43 ` James Bottomley 2020-08-11 5:43 ` James Bottomley 2020-08-11 5:43 ` James Bottomley 2020-08-11 14:48 ` Chuck Lever 2020-08-11 14:48 ` Chuck Lever 2020-08-11 14:48 ` Chuck Lever 2020-08-11 15:32 ` James Bottomley 2020-08-11 15:32 ` James Bottomley 2020-08-11 15:32 ` James Bottomley 2020-08-11 19:30 ` Pavel Machek 2020-08-11 19:30 ` Pavel Machek 2020-08-11 19:30 ` Pavel Machek 2020-08-12 14:45 ` Chuck Lever 2020-08-12 14:45 ` Chuck Lever 2020-08-12 14:45 ` Chuck Lever 2020-08-11 15:53 ` James Bottomley 2020-08-11 15:53 ` James Bottomley 2020-08-11 15:53 ` James Bottomley 2020-08-12 14:15 ` Chuck Lever 2020-08-12 14:15 ` Chuck Lever 2020-08-12 14:15 ` Chuck Lever 2020-08-12 15:51 ` James Bottomley 2020-08-12 15:51 ` James Bottomley 2020-08-12 15:51 ` James Bottomley 2020-08-13 14:42 ` Chuck Lever 2020-08-13 14:42 ` Chuck Lever 2020-08-13 14:42 ` Chuck Lever 2020-08-13 15:10 ` James Bottomley 2020-08-13 15:10 ` James Bottomley 2020-08-13 15:10 ` James Bottomley 2020-08-14 14:21 ` Chuck Lever 2020-08-14 14:21 ` Chuck Lever 2020-08-14 14:21 ` Chuck Lever 2020-08-11 18:28 ` James Bottomley 2020-08-11 18:28 ` James Bottomley 2020-08-11 18:28 ` James Bottomley 2020-08-12 13:56 ` Chuck Lever 2020-08-12 13:56 ` Chuck Lever 2020-08-12 13:56 ` Chuck Lever 2020-08-12 15:42 ` James Bottomley 2020-08-12 15:42 ` James Bottomley 2020-08-12 15:42 ` James Bottomley 2020-08-13 14:21 ` Chuck Lever 2020-08-13 14:21 ` Chuck Lever 2020-08-13 14:21 ` Chuck Lever 2020-08-13 14:42 ` James Bottomley 2020-08-13 14:42 ` James Bottomley 2020-08-13 14:42 ` James Bottomley 2020-08-13 14:56 ` Chuck Lever 2020-08-13 14:56 ` Chuck Lever 2020-08-13 14:56 ` Chuck Lever 2020-08-11 21:03 ` James Morris 2020-08-11 21:03 ` James Morris 2020-08-11 21:03 ` James Morris 2020-08-12 14:18 ` Chuck Lever 2020-08-12 14:18 ` Chuck Lever 2020-08-12 14:18 ` Chuck Lever 2020-08-12 17:07 ` Deven Bowers 2020-08-12 17:07 ` Deven Bowers
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200728213614.586312-2-deven.desai@linux.microsoft.com \ --to=deven.desai@linux.microsoft.com \ --cc=agk@redhat.com \ --cc=axboe@kernel.dk \ --cc=corbet@lwn.net \ --cc=dm-devel@redhat.com \ --cc=eparis@redhat.com \ --cc=jannh@google.com \ --cc=jaskarankhurana@linux.microsoft.com \ --cc=jmorris@namei.org \ --cc=linux-audit@redhat.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-integrity@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=mdsakib@microsoft.com \ --cc=nramas@linux.microsoft.com \ --cc=pasha.tatashin@soleen.com \ --cc=paul@paul-moore.com \ --cc=sashal@kernel.org \ --cc=serge@hallyn.com \ --cc=snitzer@redhat.com \ --cc=tyhicks@linux.microsoft.com \ --cc=viro@zeniv.linux.org.uk \ --cc=zohar@linux.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.