From: Matt Fleming <matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
To: Peter Jones <pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 5/5] efi: Make efivarfs entries immutable by default. (v5)
Date: Thu, 4 Feb 2016 23:42:11 +0000 [thread overview]
Message-ID: <20160204234211.GI2586@codeblueprint.co.uk> (raw)
In-Reply-To: <1454600074-14854-6-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
On Thu, 04 Feb, at 10:34:34AM, Peter Jones wrote:
> "rm -rf" is bricking some peoples' laptops because of variables being
> used to store non-reinitializable firmware driver data that's required
> to POST the hardware.
>
> These are 100% bugs, and they need to be fixed, but in the mean time it
> shouldn't be easy to *accidentally* brick machines.
>
> We have to have delete working, and picking which variables do and don't
> work for deletion is quite intractable, so instead make everything
> immutable by default (except for a whitelist), and make tools that
> aren't quite so broad-spectrum unset the immutable flag.
>
> v2: - adds Timeout to our whitelist.
> v3: - takes the extra Timeout out of the whitelist
> - fixes whitelist matching to actually work
> - inverts the flag on efivarfs_get_inode() and calls it is_removable
> - adds documentation and test cases
> v4: - fix a double-free on the end of list traversal
> v5: - fix the inode locking in _setxflags()
> - use namelen not dentry->d_name.len when we're calling
> efivar_variable_is_removable() from efivarfs_create()
>
> Signed-off-by: Peter Jones <pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Tested-by: Lee, Chun-Yi <jlee-IBi9RG/b67k@public.gmane.org>
> Acked-by: Matthew Garrett <mjg59-JW9irJGTvgXQT0dZR+AlfA@public.gmane.org>
> ---
> Documentation/filesystems/efivarfs.txt | 7 ++
> drivers/firmware/efi/vars.c | 88 +++++++++++++++++++-------
> fs/efivarfs/file.c | 70 ++++++++++++++++++++
> fs/efivarfs/inode.c | 30 +++++----
> fs/efivarfs/internal.h | 3 +-
> fs/efivarfs/super.c | 9 ++-
> include/linux/efi.h | 2 +
> tools/testing/selftests/efivarfs/efivarfs.sh | 19 +++++-
> tools/testing/selftests/efivarfs/open-unlink.c | 72 ++++++++++++++++++++-
> 9 files changed, 259 insertions(+), 41 deletions(-)
[...]
> +bool
> +efivar_variable_is_removable(efi_guid_t vendor, const char *var_name,
> + size_t len)
> +{
> + int i;
> + bool found = false;
> + int match = 0;
> +
> + /*
> + * Now check the validated variables list and then the whitelist -
> + * both are whitelists
> + */
I don't understand this comment. There are two lists?
next prev parent reply other threads:[~2016-02-04 23:42 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-04 15:34 efivarfs immutable files patch set Peter Jones
[not found] ` <1454600074-14854-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-04 15:34 ` [PATCH 1/5] Add ucs2 -> utf8 helper functions Peter Jones
[not found] ` <1454600074-14854-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-12 13:22 ` Laszlo Ersek
[not found] ` <56BDDC95.8030608-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-12 15:07 ` Peter Jones
2016-02-15 10:15 ` Matt Fleming
2016-02-04 15:34 ` [PATCH 2/5] efi: use ucs2_as_utf8 in efivarfs instead of open coding a bad version (v2) Peter Jones
[not found] ` <1454600074-14854-3-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-04 22:06 ` Matt Fleming
2016-02-04 15:34 ` [PATCH 3/5] efi: do variable name validation tests in utf8 Peter Jones
[not found] ` <1454600074-14854-4-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-04 21:39 ` Matt Fleming
2016-02-04 15:34 ` [PATCH 4/5] efi: make our variable validation list include the guid (v3) Peter Jones
[not found] ` <1454600074-14854-5-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-04 22:54 ` Matt Fleming
2016-02-04 15:34 ` [PATCH 5/5] efi: Make efivarfs entries immutable by default. (v5) Peter Jones
[not found] ` <1454600074-14854-6-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-04 23:42 ` Matt Fleming [this message]
[not found] ` <20160204234211.GI2586-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-08 19:48 ` efi: make most efivarfs files immutable by default Peter Jones
2016-02-08 19:48 ` Peter Jones
2016-02-08 19:48 ` [PATCH 1/5] Add ucs2 -> utf8 helper functions Peter Jones
2016-02-08 19:48 ` [PATCH 3/5] efi: do variable name validation tests in utf8 (v2) Peter Jones
2016-02-08 19:48 ` [PATCH 5/5] efi: Make efivarfs entries immutable by default. (v5) Peter Jones
[not found] ` <1454960895-3473-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-08 19:48 ` [PATCH 2/5] efi: use ucs2_as_utf8 in efivarfs instead of open coding a bad version (v3) Peter Jones
2016-02-08 19:48 ` Peter Jones
2016-02-08 19:48 ` [PATCH 4/5] efi: make our variable validation list include the guid (v3) Peter Jones
2016-02-08 19:48 ` Peter Jones
2016-02-10 13:22 ` efi: make most efivarfs files immutable by default Matt Fleming
2016-02-10 13:22 ` Matt Fleming
[not found] ` <20160210132225.GA2949-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-10 14:51 ` [PATCH] efi: minor fixup in efivar_validate() declaration Peter Jones
2016-02-10 14:51 ` Peter Jones
[not found] ` <1455115862-2490-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-10 16:38 ` Matt Fleming
2016-02-10 16:38 ` Matt Fleming
2016-02-12 13:36 ` [PATCH 5/5] efi: Make efivarfs entries immutable by default. (v5) Laszlo Ersek
[not found] ` <56BDDFDC.406-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-12 15:09 ` Peter Jones
[not found] ` <20160212150948.GC31573-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-15 10:48 ` Matt Fleming
[not found] ` <20160215104801.GB2591-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-15 17:02 ` Peter Jones
[not found] ` <20160215170215.GC785-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-16 12:49 ` Matt Fleming
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=20160204234211.GI2586@codeblueprint.co.uk \
--to=matt-mf/unelci9gs6ibeejttw/xrex20p6io@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/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.