All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Serge E. Hallyn" <serge@hallyn.com>
To: Kees Cook <keescook@chromium.org>
Cc: James Morris <jmorris@namei.org>, Joe Perches <joe@perches.com>,
	Mimi Zohar <zohar@linux.vnet.ibm.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Kalle Valo <kvalo@codeaurora.org>,
	Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
	Guenter Roeck <linux@roeck-us.net>, Jiri Slaby <jslaby@suse.com>,
	Paul Moore <pmoore@redhat.com>,
	Stephen Smalley <sds@tycho.nsa.gov>,
	Casey Schaufler <casey@schaufler-ca.com>,
	Andreas Gruenbacher <agruenba@redhat.com>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	linux-security-module@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH v4 3/6] string_helpers: add kstrdup_quotable_file
Date: Tue, 12 Apr 2016 16:24:45 -0500	[thread overview]
Message-ID: <20160412212445.GC12324@mail.hallyn.com> (raw)
In-Reply-To: <1460480085-32263-4-git-send-email-keescook@chromium.org>

Quoting Kees Cook (keescook@chromium.org):
> Allocate a NULL-terminated file path with special characters escaped,
> safe for logging.
> 
> Signed-off-by: Kees Cook <keescook@chromium.org>

Acked-by: Serge Hallyn <serge.hallyn@canonical.com>

> ---
>  include/linux/string_helpers.h |  3 +++
>  lib/string_helpers.c           | 30 ++++++++++++++++++++++++++++++
>  2 files changed, 33 insertions(+)
> 
> diff --git a/include/linux/string_helpers.h b/include/linux/string_helpers.h
> index 684d2695fc36..5ce9538f290e 100644
> --- a/include/linux/string_helpers.h
> +++ b/include/linux/string_helpers.h
> @@ -3,6 +3,8 @@
>  
>  #include <linux/types.h>
>  
> +struct file;
> +
>  /* Descriptions of the types of units to
>   * print in */
>  enum string_size_units {
> @@ -70,5 +72,6 @@ static inline int string_escape_str_any_np(const char *src, char *dst,
>  
>  char *kstrdup_quotable(const char *src, gfp_t gfp);
>  char *kstrdup_quotable_cmdline(struct task_struct *task, gfp_t gfp);
> +char *kstrdup_quotable_file(struct file *file, gfp_t gfp);
>  
>  #endif
> diff --git a/lib/string_helpers.c b/lib/string_helpers.c
> index b16ee85aaf87..ecaac2c0526f 100644
> --- a/lib/string_helpers.c
> +++ b/lib/string_helpers.c
> @@ -10,6 +10,8 @@
>  #include <linux/export.h>
>  #include <linux/ctype.h>
>  #include <linux/errno.h>
> +#include <linux/fs.h>
> +#include <linux/limits.h>
>  #include <linux/mm.h>
>  #include <linux/slab.h>
>  #include <linux/string.h>
> @@ -596,3 +598,31 @@ char *kstrdup_quotable_cmdline(struct task_struct *task, gfp_t gfp)
>  	return quoted;
>  }
>  EXPORT_SYMBOL_GPL(kstrdup_quotable_cmdline);
> +
> +/*
> + * Returns allocated NULL-terminated string containing pathname,
> + * with special characters escaped, able to be safely logged. If
> + * there is an error, the leading character will be "<".
> + */
> +char *kstrdup_quotable_file(struct file *file, gfp_t gfp)
> +{
> +	char *temp, *pathname;
> +
> +	if (!file)
> +		return kstrdup("<unknown>", gfp);
> +
> +	/* We add 11 spaces for ' (deleted)' to be appended */
> +	temp = kmalloc(PATH_MAX + 11, GFP_TEMPORARY);
> +	if (!temp)
> +		return kstrdup("<no_memory>", gfp);
> +
> +	pathname = file_path(file, temp, PATH_MAX + 11);
> +	if (IS_ERR(pathname))
> +		pathname = kstrdup("<too_long>", gfp);
> +	else
> +		pathname = kstrdup_quotable(pathname, gfp);
> +
> +	kfree(temp);
> +	return pathname;
> +}
> +EXPORT_SYMBOL_GPL(kstrdup_quotable_file);
> -- 
> 2.6.3

  reply	other threads:[~2016-04-12 21:24 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-12 16:54 [PATCH v4 0/6] LSM: LoadPin for kernel file loading restrictions Kees Cook
2016-04-12 16:54 ` [PATCH v4 1/6] string_helpers: add kstrdup_quotable Kees Cook
2016-04-12 21:13   ` Serge E. Hallyn
2016-04-12 16:54 ` [PATCH v4 2/6] string_helpers: add kstrdup_quotable_cmdline Kees Cook
2016-04-12 21:19   ` Serge E. Hallyn
2016-04-13 11:53     ` Andy Shevchenko
2016-04-12 16:54 ` [PATCH v4 3/6] string_helpers: add kstrdup_quotable_file Kees Cook
2016-04-12 21:24   ` Serge E. Hallyn [this message]
2016-04-12 16:54 ` [PATCH v4 4/6] Yama: consolidate error reporting Kees Cook
2016-04-12 21:26   ` Serge E. Hallyn
2016-04-12 16:54 ` [PATCH v4 5/6] fs: provide function to report enum strings Kees Cook
2016-04-12 21:30   ` Serge E. Hallyn
2016-04-12 22:31   ` Al Viro
2016-04-12 22:38     ` Kees Cook
2016-04-13 11:53       ` Mimi Zohar
2016-04-12 16:54 ` [PATCH v4 6/6] LSM: LoadPin for kernel file loading restrictions Kees Cook
2016-04-12 21:44   ` Serge E. Hallyn

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=20160412212445.GC12324@mail.hallyn.com \
    --to=serge@hallyn.com \
    --cc=agruenba@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=casey@schaufler-ca.com \
    --cc=corbet@lwn.net \
    --cc=jmorris@namei.org \
    --cc=joe@perches.com \
    --cc=jslaby@suse.com \
    --cc=keescook@chromium.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=linux@roeck-us.net \
    --cc=mchehab@osg.samsung.com \
    --cc=pmoore@redhat.com \
    --cc=sds@tycho.nsa.gov \
    --cc=ulf.hansson@linaro.org \
    --cc=vkuznets@redhat.com \
    --cc=zohar@linux.vnet.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: link
Be 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.