summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch99
-rw-r--r--0001-tools-lib-subcmd-pager.c-do-not-alias-select-params.patch44
-rw-r--r--CVE-2017-7645.patch180
-rw-r--r--KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch130
-rw-r--r--efi-Add-SHIM-and-image-security-database-GUID-defini.patch31
5 files changed, 0 insertions, 484 deletions
diff --git a/0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch b/0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch
deleted file mode 100644
index 926487b3d..000000000
--- a/0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 714fe15daa07e7691c9731c88de71aa57f84b6c2 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 3 Jan 2018 11:13:54 +0100
-Subject: [PATCH] platform/x86: dell-laptop: Filter out spurious keyboard
- backlight change events
-
-On some Dell XPS models WMI events of type 0x0000 reporting a keycode of
-0xe00c get reported when the brightness of the LCD panel changes.
-
-This leads to us reporting false-positive kbd_led change events to
-userspace which in turn leads to the kbd backlight OSD showing when it
-should not.
-
-We already read the current keyboard backlight brightness value when
-reporting events because the led_classdev_notify_brightness_hw_changed
-API requires this. Compare this value to the last known value and filter
-out duplicate events, fixing this.
-
-Note the fixed issue is esp. a problem on XPS models with an ambient light
-sensor and automatic brightness adjustments turned on, this causes the kbd
-backlight OSD to show all the time there.
-
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1514969
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/platform/x86/dell-laptop.c | 24 ++++++++++++++++++++++--
- 1 file changed, 22 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
-index cd4725e7e0b5..2ef3297a9efc 100644
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -1133,6 +1133,7 @@ static u8 kbd_previous_mode_bit;
-
- static bool kbd_led_present;
- static DEFINE_MUTEX(kbd_led_mutex);
-+static enum led_brightness kbd_led_level;
-
- /*
- * NOTE: there are three ways to set the keyboard backlight level.
-@@ -1947,6 +1948,7 @@ static enum led_brightness kbd_led_level_get(struct led_classdev *led_cdev)
- static int kbd_led_level_set(struct led_classdev *led_cdev,
- enum led_brightness value)
- {
-+ enum led_brightness new_value = value;
- struct kbd_state state;
- struct kbd_state new_state;
- u16 num;
-@@ -1976,6 +1978,9 @@ static int kbd_led_level_set(struct led_classdev *led_cdev,
- }
-
- out:
-+ if (ret == 0)
-+ kbd_led_level = new_value;
-+
- mutex_unlock(&kbd_led_mutex);
- return ret;
- }
-@@ -2003,6 +2008,9 @@ static int __init kbd_led_init(struct device *dev)
- if (kbd_led.max_brightness)
- kbd_led.max_brightness--;
- }
-+
-+ kbd_led_level = kbd_led_level_get(NULL);
-+
- ret = led_classdev_register(dev, &kbd_led);
- if (ret)
- kbd_led_present = false;
-@@ -2027,13 +2035,25 @@ static void kbd_led_exit(void)
- static int dell_laptop_notifier_call(struct notifier_block *nb,
- unsigned long action, void *data)
- {
-+ bool changed = false;
-+ enum led_brightness new_kbd_led_level;
-+
- switch (action) {
- case DELL_LAPTOP_KBD_BACKLIGHT_BRIGHTNESS_CHANGED:
- if (!kbd_led_present)
- break;
-
-- led_classdev_notify_brightness_hw_changed(&kbd_led,
-- kbd_led_level_get(&kbd_led));
-+ mutex_lock(&kbd_led_mutex);
-+ new_kbd_led_level = kbd_led_level_get(&kbd_led);
-+ if (kbd_led_level != new_kbd_led_level) {
-+ kbd_led_level = new_kbd_led_level;
-+ changed = true;
-+ }
-+ mutex_unlock(&kbd_led_mutex);
-+
-+ if (changed)
-+ led_classdev_notify_brightness_hw_changed(&kbd_led,
-+ kbd_led_level);
- break;
- }
-
---
-2.14.3
-
diff --git a/0001-tools-lib-subcmd-pager.c-do-not-alias-select-params.patch b/0001-tools-lib-subcmd-pager.c-do-not-alias-select-params.patch
deleted file mode 100644
index 37c0f041e..000000000
--- a/0001-tools-lib-subcmd-pager.c-do-not-alias-select-params.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 85721e6bfc5da3c8f7971c4acb1a0ad16fb2c16a Mon Sep 17 00:00:00 2001
-From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
-Date: Thu, 1 Feb 2018 13:29:38 +1100
-Subject: [PATCH] tools/lib/subcmd/pager.c: do not alias select() params
-
-Use a separate fd set for select()-s exception fds param to fix the
-following gcc warning:
-
-pager.c:36:12: error: passing argument 2 to restrict-qualified
- parameter aliases with argument 4 [-Werror=restrict]
- select(1, &in, NULL, &in, NULL);
- ^~~ ~~~
-
-Link: http://lkml.kernel.org/r/20180101105626.7168-1-sergey.senozhatsky@gmail.com
-Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
-Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
----
- tools/lib/subcmd/pager.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/tools/lib/subcmd/pager.c b/tools/lib/subcmd/pager.c
-index 5ba754d17952..9997a8805a82 100644
---- a/tools/lib/subcmd/pager.c
-+++ b/tools/lib/subcmd/pager.c
-@@ -30,10 +30,13 @@ static void pager_preexec(void)
- * have real input
- */
- fd_set in;
-+ fd_set exception;
-
- FD_ZERO(&in);
-+ FD_ZERO(&exception);
- FD_SET(0, &in);
-- select(1, &in, NULL, &in, NULL);
-+ FD_SET(0, &exception);
-+ select(1, &in, NULL, &exception, NULL);
-
- setenv("LESS", "FRSX", 0);
- }
---
-2.14.3
-
diff --git a/CVE-2017-7645.patch b/CVE-2017-7645.patch
deleted file mode 100644
index 0be019cc3..000000000
--- a/CVE-2017-7645.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From: "J. Bruce Fields" <bfields@redhat.com>
-Date: 2017-04-14 15:04:40
-Subject: [PATCH] nfsd: check for oversized NFSv2/v3 arguments
-
-A client can append random data to the end of an NFSv2 or NFSv3 RPC call
-without our complaining; we'll just stop parsing at the end of the
-expected data and ignore the rest.
-
-Encoded arguments and replies are stored together in an array of pages,
-and if a call is too large it could leave inadequate space for the
-reply. This is normally OK because NFS RPC's typically have either
-short arguments and long replies (like READ) or long arguments and short
-replies (like WRITE). But a client that sends an incorrectly long reply
-can violate those assumptions. This was observed to cause crashes.
-
-So, insist that the argument not be any longer than we expect.
-
-Also, several operations increment rq_next_page in the decode routine
-before checking the argument size, which can leave rq_next_page pointing
-well past the end of the page array, causing trouble later in
-svc_free_pages.
-
-As followup we may also want to rewrite the encoding routines to check
-more carefully that they aren't running off the end of the page array.
-
-Reported-by: Tuomas Haanpää <thaan@synopsys.com>
-Reported-by: Ari Kauppi <ari@synopsys.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: J. Bruce Fields <bfields@redhat.com>
----
- fs/nfsd/nfs3xdr.c | 23 +++++++++++++++++------
- fs/nfsd/nfsxdr.c | 13 ++++++++++---
- include/linux/sunrpc/svc.h | 3 +--
- 3 files changed, 28 insertions(+), 11 deletions(-)
-
-diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
-index dba2ff8eaa68..be66bcadfaea 100644
---- a/fs/nfsd/nfs3xdr.c
-+++ b/fs/nfsd/nfs3xdr.c
-@@ -334,8 +334,11 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- if (!p)
- return 0;
- p = xdr_decode_hyper(p, &args->offset);
--
- args->count = ntohl(*p++);
-+
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = min(args->count, max_blocksize);
-
- /* set up the kvec */
-@@ -349,7 +352,7 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- v++;
- }
- args->vlen = v;
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -536,9 +539,11 @@ nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p,
- p = decode_fh(p, &args->fh);
- if (!p)
- return 0;
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -564,10 +569,14 @@ nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
- args->verf = p; p += 2;
- args->dircount = ~0;
- args->count = ntohl(*p++);
-+
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- args->count = min_t(u32, args->count, PAGE_SIZE);
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -585,6 +594,9 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
- args->dircount = ntohl(*p++);
- args->count = ntohl(*p++);
-
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = args->count = min(args->count, max_blocksize);
- while (len > 0) {
- struct page *p = *(rqstp->rq_next_page++);
-@@ -592,8 +604,7 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
- args->buffer = page_address(p);
- len -= PAGE_SIZE;
- }
--
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c
-index 41b468a6a90f..79268369f7b3 100644
---- a/fs/nfsd/nfsxdr.c
-+++ b/fs/nfsd/nfsxdr.c
-@@ -257,6 +257,9 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- len = args->count = ntohl(*p++);
- p++; /* totalcount - unused */
-
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = min_t(unsigned int, len, NFSSVC_MAXBLKSIZE_V2);
-
- /* set up somewhere to store response.
-@@ -272,7 +275,7 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- v++;
- }
- args->vlen = v;
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -360,9 +363,11 @@ nfssvc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd_readli
- p = decode_fh(p, &args->fh);
- if (!p)
- return 0;
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -400,9 +405,11 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
- args->cookie = ntohl(*p++);
- args->count = ntohl(*p++);
- args->count = min_t(u32, args->count, PAGE_SIZE);
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- /*
-diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
-index e770abeed32d..6ef19cf658b4 100644
---- a/include/linux/sunrpc/svc.h
-+++ b/include/linux/sunrpc/svc.h
-@@ -336,8 +336,7 @@ xdr_argsize_check(struct svc_rqst *rqstp, __be32 *p)
- {
- char *cp = (char *)p;
- struct kvec *vec = &rqstp->rq_arg.head[0];
-- return cp >= (char*)vec->iov_base
-- && cp <= (char*)vec->iov_base + vec->iov_len;
-+ return cp == (char *)vec->iov_base + vec->iov_len;
- }
-
- static inline int
---
-2.9.3
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch b/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch
deleted file mode 100644
index af7478ee5..000000000
--- a/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 7289bfaee2a42bdb56eecab0625907c045d080ba Mon Sep 17 00:00:00 2001
-From: Eric Biggers <ebiggers@google.com>
-Date: Wed, 27 Sep 2017 12:50:41 -0700
-Subject: [PATCH] KEYS: don't let add_key() update an uninstantiated key
-
-Currently, add_key() will, when passed a key that already exists, call
-the key's ->update() method. But this is heavily broken in the case
-where the key is uninstantiated because it doesn't call
-__key_instantiate_and_link(). Consequently, it doesn't do most of the
-things that are supposed to happen when the key is instantiated, such as
-setting KEY_FLAG_INSTANTIATED, clearing KEY_FLAG_USER_CONSTRUCT and
-awakening tasks waiting on it, and incrementing key->user->nikeys.
-
-It also never takes key_construction_mutex, which means that
-->instantiate() can run concurrently with ->update() on the same key.
-In the case of the "user" and "logon" key types this causes a memory
-leak, at best. Maybe even worse, the ->update() methods of the
-"encrypted" and "trusted" key types actually just dereference a NULL
-pointer when passed an uninstantiated key.
-
-Therefore, change find_key_to_update() to return NULL if the found key
-is uninstantiated, so that add_key() replaces the key rather than
-instantiating it. This seems to be better than fixing __key_update() to
-call __key_instantiate_and_link(), since given all the bugs noted above
-as well as that the existing behavior was undocumented and
-keyctl_instantiate() is supposed to be used instead, I doubt anyone was
-relying on the existing behavior.
-
-This patch only affects *uninstantiated* keys. For now we still allow a
-negatively instantiated key to be updated (thereby positively
-instantiating it), although that's broken too (the next patch fixes it)
-and I'm not sure that anyone actually uses that functionality either.
-
-Here is a simple reproducer for the bug using the "encrypted" key type
-(requires CONFIG_ENCRYPTED_KEYS=y), though as noted above the bug
-pertained to more than just the "encrypted" key type:
-
- #include <stdlib.h>
- #include <unistd.h>
- #include <keyutils.h>
-
- int main(void)
- {
- int ringid = keyctl_join_session_keyring(NULL);
-
- if (fork()) {
- for (;;) {
- const char payload[] = "update user:foo 32";
-
- usleep(rand() % 10000);
- add_key("encrypted", "desc", payload, sizeof(payload), ringid);
- keyctl_clear(ringid);
- }
- } else {
- for (;;)
- request_key("encrypted", "desc", "callout_info", ringid);
- }
- }
-
-It causes:
-
- BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
- IP: encrypted_update+0xb0/0x170
- PGD 7a178067 P4D 7a178067 PUD 77269067 PMD 0
- PREEMPT SMP
- CPU: 0 PID: 340 Comm: reproduce Tainted: G D 4.14.0-rc1-00025-g428490e38b2e #796
- Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
- task: ffff8a467a39a340 task.stack: ffffb15c40770000
- RIP: 0010:encrypted_update+0xb0/0x170
- RSP: 0018:ffffb15c40773de8 EFLAGS: 00010246
- RAX: 0000000000000000 RBX: ffff8a467a275b00 RCX: 0000000000000000
- RDX: 0000000000000005 RSI: ffff8a467a275b14 RDI: ffffffffb742f303
- RBP: ffffb15c40773e20 R08: 0000000000000000 R09: ffff8a467a275b17
- R10: 0000000000000020 R11: 0000000000000000 R12: 0000000000000000
- R13: 0000000000000000 R14: ffff8a4677057180 R15: ffff8a467a275b0f
- FS: 00007f5d7fb08700(0000) GS:ffff8a467f200000(0000) knlGS:0000000000000000
- CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
- CR2: 0000000000000018 CR3: 0000000077262005 CR4: 00000000001606f0
- Call Trace:
- key_create_or_update+0x2bc/0x460
- SyS_add_key+0x10c/0x1d0
- entry_SYSCALL_64_fastpath+0x1f/0xbe
- RIP: 0033:0x7f5d7f211259
- RSP: 002b:00007ffed03904c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f8
- RAX: ffffffffffffffda RBX: 000000003b2a7955 RCX: 00007f5d7f211259
- RDX: 00000000004009e4 RSI: 00000000004009ff RDI: 0000000000400a04
- RBP: 0000000068db8bad R08: 000000003b2a7955 R09: 0000000000000004
- R10: 000000000000001a R11: 0000000000000246 R12: 0000000000400868
- R13: 00007ffed03905d0 R14: 0000000000000000 R15: 0000000000000000
- Code: 77 28 e8 64 34 1f 00 45 31 c0 31 c9 48 8d 55 c8 48 89 df 48 8d 75 d0 e8 ff f9 ff ff 85 c0 41 89 c4 0f 88 84 00 00 00 4c 8b 7d c8 <49> 8b 75 18 4c 89 ff e8 24 f8 ff ff 85 c0 41 89 c4 78 6d 49 8b
- RIP: encrypted_update+0xb0/0x170 RSP: ffffb15c40773de8
- CR2: 0000000000000018
-
-Cc: <stable@vger.kernel.org> [v2.6.12+]
-Signed-off-by: Eric Biggers <ebiggers@google.com>
----
- security/keys/keyring.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/security/keys/keyring.c b/security/keys/keyring.c
-index 4fa82a8a9c0e..129a4175760b 100644
---- a/security/keys/keyring.c
-+++ b/security/keys/keyring.c
-@@ -1056,8 +1056,8 @@ EXPORT_SYMBOL(keyring_restrict);
- * caller must also hold a lock on the keyring semaphore.
- *
- * Returns a pointer to the found key with usage count incremented if
-- * successful and returns NULL if not found. Revoked and invalidated keys are
-- * skipped over.
-+ * successful and returns NULL if not found. Revoked, invalidated, and
-+ * uninstantiated keys are skipped over. (But negative keys are not!)
- *
- * If successful, the possession indicator is propagated from the keyring ref
- * to the returned key reference.
-@@ -1084,8 +1084,10 @@ key_ref_t find_key_to_update(key_ref_t keyring_ref,
-
- found:
- key = keyring_ptr_to_key(object);
-- if (key->flags & ((1 << KEY_FLAG_INVALIDATED) |
-- (1 << KEY_FLAG_REVOKED))) {
-+ if ((key->flags & ((1 << KEY_FLAG_INVALIDATED) |
-+ (1 << KEY_FLAG_REVOKED) |
-+ (1 << KEY_FLAG_INSTANTIATED))) !=
-+ (1 << KEY_FLAG_INSTANTIATED)) {
- kleave(" = NULL [x]");
- return NULL;
- }
---
-2.13.6
-
diff --git a/efi-Add-SHIM-and-image-security-database-GUID-defini.patch b/efi-Add-SHIM-and-image-security-database-GUID-defini.patch
deleted file mode 100644
index 4d380ea76..000000000
--- a/efi-Add-SHIM-and-image-security-database-GUID-defini.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3a9fe1504e08824d894bb3a804c6a313f5d1be8a Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Tue, 25 Oct 2016 12:54:11 -0400
-Subject: [PATCH 11/20] efi: Add SHIM and image security database GUID
- definitions
-
-Add the definitions for shim and image security database, both of which
-are used widely in various Linux distros.
-
-Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
----
- include/linux/efi.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 2d089487d2da..ce943d5accfd 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -592,6 +592,9 @@ void efi_native_runtime_setup(void);
- #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)
- #define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
-
-+#define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f)
-+#define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23)
-+
- /*
- * This GUID is used to pass to the kernel proper the struct screen_info
- * structure that was populated by the stub based on the GOP protocol instance
---
-2.9.3
-