linux v4.5-rc2
This commit is contained in:
parent
79bacf658e
commit
289e557a5d
@ -1,51 +0,0 @@
|
|||||||
From 7707055082a7005ad94ba81e5240644db8c0324a
|
|
||||||
From: David Howells <dhowells@redhat.com>
|
|
||||||
Date: Tue Jan 26 16:28:17 2016 +0000
|
|
||||||
Subject: [PATCH] KEYS: Only apply KEY_FLAG_KEEP to a key if a parent keyring has it set
|
|
||||||
|
|
||||||
KEY_FLAG_KEEP should only be applied to a key if the keyring it is being
|
|
||||||
linked into has KEY_FLAG_KEEP set.
|
|
||||||
|
|
||||||
To this end, partially revert the following patch:
|
|
||||||
|
|
||||||
commit 1d6d167c2efcfe9539d9cffb1a1be9c92e39c2c0
|
|
||||||
Author: Mimi Zohar <zohar@linux.vnet.ibm.com>
|
|
||||||
Date: Thu Jan 7 07:46:36 2016 -0500
|
|
||||||
KEYS: refcount bug fix
|
|
||||||
|
|
||||||
to undo the change that made it unconditional (Mimi got it right the first
|
|
||||||
time).
|
|
||||||
|
|
||||||
Without undoing this change, it becomes impossible to delete, revoke or
|
|
||||||
invalidate keys added to keyrings through __key_instantiate_and_link()
|
|
||||||
where the keyring has itself been linked to. To test this, run the
|
|
||||||
following command sequence:
|
|
||||||
|
|
||||||
keyctl newring foo @s
|
|
||||||
keyctl add user a a %:foo
|
|
||||||
keyctl unlink %user:a %:foo
|
|
||||||
keyctl clear %:foo
|
|
||||||
|
|
||||||
With the commit mentioned above the third and fourth commands fail with
|
|
||||||
EPERM when they should succeed.
|
|
||||||
|
|
||||||
Reported-by: Stephen Gallager <sgallagh@redhat.com>
|
|
||||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
|
||||||
cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
|
|
||||||
cc: keyrings@vger.kernel.org
|
|
||||||
cc: stable@vger.kernel.org
|
|
||||||
|
|
||||||
diff --git a/security/keys/key.c b/security/keys/key.c
|
|
||||||
index 07a87311055c..09ef276c4bdc 100644
|
|
||||||
--- a/security/keys/key.c
|
|
||||||
+++ b/security/keys/key.c
|
|
||||||
@@ -430,7 +430,8 @@ static int __key_instantiate_and_link(struct key *key,
|
|
||||||
|
|
||||||
/* and link it into the destination keyring */
|
|
||||||
if (keyring) {
|
|
||||||
- set_bit(KEY_FLAG_KEEP, &key->flags);
|
|
||||||
+ if (test_bit(KEY_FLAG_KEEP, &keyring->flags))
|
|
||||||
+ set_bit(KEY_FLAG_KEEP, &key->flags);
|
|
||||||
|
|
||||||
__key_link(key, _edit);
|
|
||||||
}
|
|
@ -1825,13 +1825,13 @@ CONFIG_B43_PCMCIA=y
|
|||||||
CONFIG_B43_SDIO=y
|
CONFIG_B43_SDIO=y
|
||||||
CONFIG_B43_BCMA=y
|
CONFIG_B43_BCMA=y
|
||||||
CONFIG_B43_BCMA_PIO=y
|
CONFIG_B43_BCMA_PIO=y
|
||||||
CONFIG_B43_DEBUG=y
|
# CONFIG_B43_DEBUG is not set
|
||||||
CONFIG_B43_PHY_LP=y
|
CONFIG_B43_PHY_LP=y
|
||||||
CONFIG_B43_PHY_N=y
|
CONFIG_B43_PHY_N=y
|
||||||
CONFIG_B43_PHY_HT=y
|
CONFIG_B43_PHY_HT=y
|
||||||
CONFIG_B43_PHY_G=y
|
CONFIG_B43_PHY_G=y
|
||||||
CONFIG_B43LEGACY=m
|
CONFIG_B43LEGACY=m
|
||||||
CONFIG_B43LEGACY_DEBUG=y
|
# CONFIG_B43LEGACY_DEBUG is not set
|
||||||
CONFIG_B43LEGACY_DMA=y
|
CONFIG_B43LEGACY_DMA=y
|
||||||
CONFIG_B43LEGACY_PIO=y
|
CONFIG_B43LEGACY_PIO=y
|
||||||
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||||
@ -5125,7 +5125,7 @@ CONFIG_PM_DEBUG=y
|
|||||||
# CONFIG_DPM_WATCHDOG is not set # revisit this in debug
|
# CONFIG_DPM_WATCHDOG is not set # revisit this in debug
|
||||||
CONFIG_PM_TRACE=y
|
CONFIG_PM_TRACE=y
|
||||||
CONFIG_PM_TRACE_RTC=y
|
CONFIG_PM_TRACE_RTC=y
|
||||||
CONFIG_PM_TEST_SUSPEND=y
|
# CONFIG_PM_TEST_SUSPEND is not set
|
||||||
# CONFIG_PM_OPP is not set
|
# CONFIG_PM_OPP is not set
|
||||||
# CONFIG_PM_AUTOSLEEP is not set
|
# CONFIG_PM_AUTOSLEEP is not set
|
||||||
# CONFIG_PM_WAKELOCKS is not set
|
# CONFIG_PM_WAKELOCKS is not set
|
||||||
|
112
config-nodebug
112
config-nodebug
@ -2,101 +2,101 @@ CONFIG_SND_VERBOSE_PRINTK=y
|
|||||||
CONFIG_SND_DEBUG=y
|
CONFIG_SND_DEBUG=y
|
||||||
CONFIG_SND_PCM_XRUN_DEBUG=y
|
CONFIG_SND_PCM_XRUN_DEBUG=y
|
||||||
|
|
||||||
CONFIG_DEBUG_ATOMIC_SLEEP=y
|
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_MUTEXES=y
|
# CONFIG_DEBUG_MUTEXES is not set
|
||||||
CONFIG_DEBUG_RT_MUTEXES=y
|
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||||
CONFIG_LOCK_TORTURE_TEST=m
|
# CONFIG_LOCK_TORTURE_TEST is not set
|
||||||
CONFIG_PROVE_LOCKING=y
|
# CONFIG_PROVE_LOCKING is not set
|
||||||
CONFIG_DEBUG_SPINLOCK=y
|
# CONFIG_DEBUG_SPINLOCK is not set
|
||||||
CONFIG_PROVE_RCU=y
|
# CONFIG_PROVE_RCU is not set
|
||||||
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
||||||
CONFIG_DEBUG_PER_CPU_MAPS=y
|
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||||
CONFIG_CPUMASK_OFFSTACK=y
|
CONFIG_CPUMASK_OFFSTACK=y
|
||||||
|
|
||||||
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
|
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
|
||||||
|
|
||||||
CONFIG_FAULT_INJECTION=y
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
CONFIG_FAILSLAB=y
|
# CONFIG_FAILSLAB is not set
|
||||||
CONFIG_FAIL_PAGE_ALLOC=y
|
# CONFIG_FAIL_PAGE_ALLOC is not set
|
||||||
CONFIG_FAIL_MAKE_REQUEST=y
|
# CONFIG_FAIL_MAKE_REQUEST is not set
|
||||||
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
|
||||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
|
||||||
CONFIG_FAIL_IO_TIMEOUT=y
|
# CONFIG_FAIL_IO_TIMEOUT is not set
|
||||||
CONFIG_FAIL_MMC_REQUEST=y
|
# CONFIG_FAIL_MMC_REQUEST is not set
|
||||||
|
|
||||||
CONFIG_LOCK_STAT=y
|
# CONFIG_LOCK_STAT is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_STACK_USAGE=y
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
|
|
||||||
CONFIG_ACPI_DEBUG=y
|
# CONFIG_ACPI_DEBUG is not set
|
||||||
# CONFIG_ACPI_DEBUGGER is not set
|
# CONFIG_ACPI_DEBUGGER is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_SG=y
|
# CONFIG_DEBUG_SG is not set
|
||||||
CONFIG_DEBUG_PI_LIST=y
|
# CONFIG_DEBUG_PI_LIST is not set
|
||||||
|
|
||||||
# CONFIG_PAGE_EXTENSION is not set
|
# CONFIG_PAGE_EXTENSION is not set
|
||||||
# CONFIG_PAGE_OWNER is not set
|
# CONFIG_PAGE_OWNER is not set
|
||||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS=y
|
# CONFIG_DEBUG_OBJECTS is not set
|
||||||
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
||||||
CONFIG_DEBUG_OBJECTS_FREE=y
|
# CONFIG_DEBUG_OBJECTS_FREE is not set
|
||||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
|
||||||
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
|
# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
|
||||||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||||
|
|
||||||
CONFIG_X86_PTDUMP=y
|
CONFIG_X86_PTDUMP=y
|
||||||
CONFIG_ARM64_PTDUMP=y
|
# CONFIG_ARM64_PTDUMP is not set
|
||||||
CONFIG_EFI_PGT_DUMP=y
|
# CONFIG_EFI_PGT_DUMP is not set
|
||||||
|
|
||||||
CONFIG_CAN_DEBUG_DEVICES=y
|
# CONFIG_CAN_DEBUG_DEVICES is not set
|
||||||
|
|
||||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_DEBUG_NOTIFIERS=y
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
|
|
||||||
CONFIG_DMA_API_DEBUG=y
|
# CONFIG_DMA_API_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_MMIOTRACE=y
|
# CONFIG_MMIOTRACE is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_CREDENTIALS=y
|
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||||
|
|
||||||
# off in both production debug and nodebug builds,
|
# off in both production debug and nodebug builds,
|
||||||
# on in rawhide nodebug builds
|
# on in rawhide nodebug builds
|
||||||
CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
|
|
||||||
CONFIG_EXT4_DEBUG=y
|
# CONFIG_EXT4_DEBUG is not set
|
||||||
|
|
||||||
# CONFIG_XFS_WARN is not set
|
# CONFIG_XFS_WARN is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||||
|
|
||||||
CONFIG_JBD2_DEBUG=y
|
# CONFIG_JBD2_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_NFSD_FAULT_INJECTION=y
|
# CONFIG_NFSD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_BLK_CGROUP=y
|
# CONFIG_DEBUG_BLK_CGROUP is not set
|
||||||
|
|
||||||
CONFIG_DRBD_FAULT_INJECTION=y
|
# CONFIG_DRBD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
CONFIG_ATH_DEBUG=y
|
# CONFIG_ATH_DEBUG is not set
|
||||||
CONFIG_CARL9170_DEBUGFS=y
|
# CONFIG_CARL9170_DEBUGFS is not set
|
||||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
||||||
|
|
||||||
# CONFIG_RTLWIFI_DEBUG is not set
|
# CONFIG_RTLWIFI_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
# CONFIG_DEBUG_OBJECTS_WORK is not set
|
||||||
|
|
||||||
CONFIG_DMADEVICES_DEBUG=y
|
# CONFIG_DMADEVICES_DEBUG is not set
|
||||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||||
|
|
||||||
CONFIG_PM_ADVANCED_DEBUG=y
|
CONFIG_PM_ADVANCED_DEBUG=y
|
||||||
|
|
||||||
CONFIG_CEPH_LIB_PRETTYDEBUG=y
|
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
|
||||||
CONFIG_QUOTA_DEBUG=y
|
# CONFIG_QUOTA_DEBUG is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_KGDB_KDB=y
|
CONFIG_KGDB_KDB=y
|
||||||
@ -104,19 +104,19 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
|
|||||||
CONFIG_KDB_KEYBOARD=y
|
CONFIG_KDB_KEYBOARD=y
|
||||||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
|
||||||
# CONFIG_PERCPU_TEST is not set
|
# CONFIG_PERCPU_TEST is not set
|
||||||
CONFIG_TEST_LIST_SORT=y
|
# CONFIG_TEST_LIST_SORT is not set
|
||||||
# CONFIG_TEST_STRING_HELPERS is not set
|
# CONFIG_TEST_STRING_HELPERS is not set
|
||||||
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
# CONFIG_DETECT_HUNG_TASK is not set
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
CONFIG_WQ_WATCHDOG=y
|
# CONFIG_WQ_WATCHDOG is not set
|
||||||
|
|
||||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_KMEMLEAK=y
|
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||||
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
||||||
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
||||||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||||
@ -127,4 +127,4 @@ CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
|||||||
|
|
||||||
# CONFIG_SPI_DEBUG is not set
|
# CONFIG_SPI_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_X86_DEBUG_STATIC_CPU_HAS=y
|
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
|
||||||
|
@ -377,7 +377,7 @@ CONFIG_SP5100_TCO=m
|
|||||||
|
|
||||||
# CONFIG_MEMTEST is not set
|
# CONFIG_MEMTEST is not set
|
||||||
# CONFIG_DEBUG_TLBFLUSH is not set
|
# CONFIG_DEBUG_TLBFLUSH is not set
|
||||||
CONFIG_MAXSMP=y
|
# CONFIG_MAXSMP is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_HP_ILO=m
|
CONFIG_HP_ILO=m
|
||||||
@ -529,6 +529,7 @@ CONFIG_X86_INTEL_LPSS=y
|
|||||||
CONFIG_IDMA64=m
|
CONFIG_IDMA64=m
|
||||||
|
|
||||||
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
||||||
|
# CONFIG_X86_INTEL_MID is not set
|
||||||
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
|
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
|
||||||
|
|
||||||
CONFIG_MFD_INTEL_LPSS_ACPI=m
|
CONFIG_MFD_INTEL_LPSS_ACPI=m
|
||||||
|
2
gitrev
2
gitrev
@ -1 +1 @@
|
|||||||
26cd83670f2f5a3d5b5514a1f7d96567cdb9558b
|
36f90b0a2ddd60823fe193a85e60ff1906c2a9b3
|
||||||
|
19
kernel.spec
19
kernel.spec
@ -65,9 +65,9 @@ Summary: The Linux kernel
|
|||||||
# The next upstream release sublevel (base_sublevel+1)
|
# The next upstream release sublevel (base_sublevel+1)
|
||||||
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 1
|
%define rcrev 2
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 2
|
%define gitrev 0
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 4.%{upstream_sublevel}.0
|
%define rpmversion 4.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
@ -122,7 +122,7 @@ Summary: The Linux kernel
|
|||||||
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
||||||
# and 0 for rawhide (all kernels are debug kernels).
|
# and 0 for rawhide (all kernels are debug kernels).
|
||||||
# See also 'make debug' and 'make release'.
|
# See also 'make debug' and 'make release'.
|
||||||
%define debugbuildsenabled 0
|
%define debugbuildsenabled 1
|
||||||
|
|
||||||
# Want to build a vanilla kernel build without any non-upstream patches?
|
# Want to build a vanilla kernel build without any non-upstream patches?
|
||||||
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
||||||
@ -590,12 +590,6 @@ Patch571: ideapad-laptop-Add-Lenovo-ideapad-Y700-17ISK-to-no_h.patch
|
|||||||
#rhbz 1295646
|
#rhbz 1295646
|
||||||
Patch621: drm-udl-Use-unlocked-gem-unreferencing.patch
|
Patch621: drm-udl-Use-unlocked-gem-unreferencing.patch
|
||||||
|
|
||||||
#CVE-2015-7566 rhbz 1296466 1297517
|
|
||||||
Patch623: usb-serial-visor-fix-crash-on-detecting-device-witho.patch
|
|
||||||
|
|
||||||
#CVE-2016-0723 rhbz 1296253 1300224
|
|
||||||
Patch637: tty-Fix-unsafe-ldisc-reference-via-ioctl-TIOCGETD.patch
|
|
||||||
|
|
||||||
#rhbz 1279653
|
#rhbz 1279653
|
||||||
Patch638: rtlwifi-rtl8821ae-Fix-5G-failure-when-EEPROM-is-inco.patch
|
Patch638: rtlwifi-rtl8821ae-Fix-5G-failure-when-EEPROM-is-inco.patch
|
||||||
|
|
||||||
@ -605,9 +599,6 @@ Patch640: PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch
|
|||||||
#Required for some persistent memory options
|
#Required for some persistent memory options
|
||||||
Patch641: disable-CONFIG_EXPERT-for-ZONE_DMA.patch
|
Patch641: disable-CONFIG_EXPERT-for-ZONE_DMA.patch
|
||||||
|
|
||||||
#rhbz 1301099
|
|
||||||
Patch642: KEYS-only-apply-KEY_FLAG_KEEP-to-a-key-if-a-parent.patch
|
|
||||||
|
|
||||||
#rhbz 1302037
|
#rhbz 1302037
|
||||||
Patch644: wext-fix-message-delay-ordering.patch
|
Patch644: wext-fix-message-delay-ordering.patch
|
||||||
Patch645: cfg80211-wext-fix-message-ordering.patch
|
Patch645: cfg80211-wext-fix-message-ordering.patch
|
||||||
@ -2060,6 +2051,10 @@ fi
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 01 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.0-0.rc1.git0.1
|
||||||
|
- Disable debugging options.
|
||||||
|
- Linux v4.5-rc2
|
||||||
|
|
||||||
* Fri Jan 29 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
* Fri Jan 29 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||||
- Backport HID sony patch to fix some gamepads (rhbz 1255235)
|
- Backport HID sony patch to fix some gamepads (rhbz 1255235)
|
||||||
|
|
||||||
|
3
sources
3
sources
@ -1,4 +1,3 @@
|
|||||||
9a78fa2eb6c68ca5a40ed5af08142599 linux-4.4.tar.xz
|
9a78fa2eb6c68ca5a40ed5af08142599 linux-4.4.tar.xz
|
||||||
dcbc8fe378a676d5d0dd208cf524e144 perf-man-4.4.tar.gz
|
dcbc8fe378a676d5d0dd208cf524e144 perf-man-4.4.tar.gz
|
||||||
be93ac61332d8fc365c5fd4e41797f5c patch-4.5-rc1.xz
|
54449bfbdc10d5cce559d2d7fb5689ac patch-4.5-rc2.xz
|
||||||
436a38fbe087d4fc73ebe7bab6275040 patch-4.5-rc1-git2.xz
|
|
||||||
|
@ -1,68 +0,0 @@
|
|||||||
From 938f50fc744cb49892bd42c8f56bdfa63e82a27d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hurley <peter@hurleysoftware.com>
|
|
||||||
Date: Sun, 10 Jan 2016 22:40:55 -0800
|
|
||||||
Subject: [PATCH] tty: Fix unsafe ldisc reference via ioctl(TIOCGETD)
|
|
||||||
|
|
||||||
ioctl(TIOCGETD) retrieves the line discipline id directly from the
|
|
||||||
ldisc because the line discipline id (c_line) in termios is untrustworthy;
|
|
||||||
userspace may have set termios via ioctl(TCSETS*) without actually
|
|
||||||
changing the line discipline via ioctl(TIOCSETD).
|
|
||||||
|
|
||||||
However, directly accessing the current ldisc via tty->ldisc is
|
|
||||||
unsafe; the ldisc ptr dereferenced may be stale if the line discipline
|
|
||||||
is changing via ioctl(TIOCSETD) or hangup.
|
|
||||||
|
|
||||||
Wait for the line discipline reference (just like read() or write())
|
|
||||||
to retrieve the "current" line discipline id.
|
|
||||||
|
|
||||||
Cc: <stable@vger.kernel.org>
|
|
||||||
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
|
|
||||||
---
|
|
||||||
drivers/tty/tty_io.c | 24 +++++++++++++++++++++++-
|
|
||||||
1 file changed, 23 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
|
|
||||||
index f435977de740..bd4027e36910 100644
|
|
||||||
--- a/drivers/tty/tty_io.c
|
|
||||||
+++ b/drivers/tty/tty_io.c
|
|
||||||
@@ -2654,6 +2654,28 @@ static int tiocsetd(struct tty_struct *tty, int __user *p)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
+ * tiocgetd - get line discipline
|
|
||||||
+ * @tty: tty device
|
|
||||||
+ * @p: pointer to user data
|
|
||||||
+ *
|
|
||||||
+ * Retrieves the line discipline id directly from the ldisc.
|
|
||||||
+ *
|
|
||||||
+ * Locking: waits for ldisc reference (in case the line discipline
|
|
||||||
+ * is changing or the tty is being hungup)
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+static int tiocgetd(struct tty_struct *tty, int __user *p)
|
|
||||||
+{
|
|
||||||
+ struct tty_ldisc *ld;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ld = tty_ldisc_ref_wait(tty);
|
|
||||||
+ ret = put_user(ld->ops->num, p);
|
|
||||||
+ tty_ldisc_deref(ld);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
* send_break - performed time break
|
|
||||||
* @tty: device to break on
|
|
||||||
* @duration: timeout in mS
|
|
||||||
@@ -2879,7 +2901,7 @@ long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|
||||||
case TIOCGSID:
|
|
||||||
return tiocgsid(tty, real_tty, p);
|
|
||||||
case TIOCGETD:
|
|
||||||
- return put_user(tty->ldisc->ops->num, (int __user *)p);
|
|
||||||
+ return tiocgetd(tty, p);
|
|
||||||
case TIOCSETD:
|
|
||||||
return tiocsetd(tty, p);
|
|
||||||
case TIOCVHANGUP:
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
From b2476fe4c16be5c2b7ee950e50677cfaa9ab9bae Mon Sep 17 00:00:00 2001
|
|
||||||
From: Vladis Dronov <vdronov@redhat.com>
|
|
||||||
Date: Tue, 12 Jan 2016 14:10:50 -0500
|
|
||||||
Subject: [PATCH] usb: serial: visor: fix crash on detecting device without
|
|
||||||
write_urbs
|
|
||||||
|
|
||||||
The visor driver crashes in clie_5_attach() when a specially crafted USB
|
|
||||||
device without bulk-out endpoint is detected. This fix adds a check that
|
|
||||||
the device has proper configuration expected by the driver.
|
|
||||||
|
|
||||||
Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
|
|
||||||
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
|
|
||||||
---
|
|
||||||
drivers/usb/serial/visor.c | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
|
|
||||||
index 60afb39eb73c..bbc90c059002 100644
|
|
||||||
--- a/drivers/usb/serial/visor.c
|
|
||||||
+++ b/drivers/usb/serial/visor.c
|
|
||||||
@@ -597,8 +597,10 @@ static int clie_5_attach(struct usb_serial *serial)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* some sanity check */
|
|
||||||
- if (serial->num_ports < 2)
|
|
||||||
- return -1;
|
|
||||||
+ if (serial->num_bulk_out < 2) {
|
|
||||||
+ dev_err(&serial->interface->dev, "missing bulk out endpoints\n");
|
|
||||||
+ return -ENODEV;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* port 0 now uses the modified endpoint Address */
|
|
||||||
port = serial->port[0];
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user