From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966657AbcDLVaK (ORCPT ); Tue, 12 Apr 2016 17:30:10 -0400 Received: from h2.hallyn.com ([78.46.35.8]:33684 "EHLO h2.hallyn.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966451AbcDLVaE (ORCPT ); Tue, 12 Apr 2016 17:30:04 -0400 Date: Tue, 12 Apr 2016 16:30:01 -0500 From: "Serge E. Hallyn" To: Kees Cook Cc: James Morris , Joe Perches , Mimi Zohar , Andy Shevchenko , Andrew Morton , "Serge E. Hallyn" , Jonathan Corbet , Kalle Valo , Mauro Carvalho Chehab , Guenter Roeck , Jiri Slaby , Paul Moore , Stephen Smalley , Casey Schaufler , Andreas Gruenbacher , Rasmus Villemoes , Ulf Hansson , Vitaly Kuznetsov , linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Subject: Re: [PATCH v4 5/6] fs: provide function to report enum strings Message-ID: <20160412213001.GE12324@mail.hallyn.com> References: <1460480085-32263-1-git-send-email-keescook@chromium.org> <1460480085-32263-6-git-send-email-keescook@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1460480085-32263-6-git-send-email-keescook@chromium.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Kees Cook (keescook@chromium.org): > Providing human-readable (and audit-parsable) strings for the READING_* > enums is needed by some LSMs. > > Signed-off-by: Kees Cook Acked-by: Serge Hallyn > --- > fs/exec.c | 19 +++++++++++++++++++ > include/linux/fs.h | 1 + > 2 files changed, 20 insertions(+) > > diff --git a/fs/exec.c b/fs/exec.c > index c4010b8207a1..05e71b6c0ef0 100644 > --- a/fs/exec.c > +++ b/fs/exec.c > @@ -819,6 +819,25 @@ struct file *open_exec(const char *name) > } > EXPORT_SYMBOL(open_exec); > > +const char *kernel_read_file_id_str(enum kernel_read_file_id id) > +{ > + switch (id) { > + case READING_FIRMWARE: > + return "firmware"; > + case READING_MODULE: > + return "kernel-module"; > + case READING_KEXEC_IMAGE: > + return "kexec-image"; > + case READING_KEXEC_INITRAMFS: > + return "kexec-initramfs"; > + case READING_POLICY: > + return "security-policy"; > + default: > + return "unknown"; > + } > +} > +EXPORT_SYMBOL(kernel_read_file_id_str); > + > int kernel_read(struct file *file, loff_t offset, > char *addr, unsigned long count) > { > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 304991a80e23..596b403d5a28 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -2589,6 +2589,7 @@ enum kernel_read_file_id { > READING_MAX_ID > }; > > +extern const char *kernel_read_file_id_str(enum kernel_read_file_id id); > extern int kernel_read(struct file *, loff_t, char *, unsigned long); > extern int kernel_read_file(struct file *, void **, loff_t *, loff_t, > enum kernel_read_file_id); > -- > 2.6.3