]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-small_fixes.patch
- up to 4.9.49; fix CVE-2017-14340: xfs: unprivileged user kernel oops, too
[packages/kernel.git] / kernel-small_fixes.patch
1 --- linux-2.6.33/scripts/mod/modpost.c~ 2010-02-24 19:52:17.000000000 +0100
2 +++ linux-2.6.33/scripts/mod/modpost.c  2010-03-07 14:26:47.242168558 +0100
3 @@ -15,7 +15,8 @@
4  #include <stdio.h>
5  #include <ctype.h>
6  #include "modpost.h"
7 -#include "../../include/generated/autoconf.h"
8 +// PLD architectures don't use CONFIG_SYMBOL_PREFIX
9 +//#include "../../include/generated/autoconf.h"
10  #include "../../include/linux/license.h"
11  
12  /* Some toolchains use a `_' prefix for all user symbols. */
13
14 --- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~       2011-07-22 04:17:23.000000000 +0200
15 +++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh        2011-08-25 21:26:04.799150642 +0200
16 @@ -9,6 +9,12 @@
17                         $cc -print-file-name=lib${lib}.${ext} | grep -q /
18                         if [ $? -eq 0 ]; then
19                                 echo "-l${lib}"
20 +                               for libt in tinfow tinfo ; do
21 +                                       $cc -print-file-name=lib${libt}.${ext} | grep -q /
22 +                                       if [ $? -eq 0 ]; then
23 +                                               echo "-l${libt}"
24 +                                       fi
25 +                               done
26                                 exit
27                         fi
28                 done
29 From 5d12f71723762a39435d054d02bbf5fb87c5cd14 Mon Sep 17 00:00:00 2001
30 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= <arekm@maven.pl>
31 Date: Mon, 6 Feb 2017 14:45:15 +0100
32 Subject: [PATCH] mac80211: Print text for disassociation reason
33 MIME-Version: 1.0
34 Content-Type: text/plain; charset=UTF-8
35 Content-Transfer-Encoding: 8bit
36
37 When disassociation happens only numeric reason is printed
38 in ieee80211_rx_mgmt_disassoc(). Add text variant, too.
39
40 Signed-off-by: Arkadiusz Miƛkiewicz <arekm@maven.pl>
41 ---
42  net/mac80211/mlme.c | 5 +++--
43  1 file changed, 3 insertions(+), 2 deletions(-)
44
45 diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
46 index 098ce9b179ee..fcf8d0aa66ec 100644
47 --- a/net/mac80211/mlme.c
48 +++ b/net/mac80211/mlme.c
49 @@ -2801,8 +2801,9 @@ static void ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata,
50  
51         reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code);
52  
53 -       sdata_info(sdata, "disassociated from %pM (Reason: %u)\n",
54 -                  mgmt->sa, reason_code);
55 +       sdata_info(sdata, "disassociated from %pM (Reason: %u=%s)\n",
56 +                  mgmt->sa, reason_code,
57 +                  ieee80211_get_reason_code_string(reason_code));
58  
59         ieee80211_set_disassoc(sdata, 0, 0, false, NULL);
60  
61 -- 
62 2.11.0
63
64 commit b31ff3cdf540110da4572e3e29bd172087af65cc
65 Author: Richard Wareing <rwareing@fb.com>
66 Date:   Wed Sep 13 09:09:35 2017 +1000
67
68     xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present
69     
70     If using a kernel with CONFIG_XFS_RT=y and we set the RHINHERIT flag on
71     a directory in a filesystem that does not have a realtime device and
72     create a new file in that directory, it gets marked as a real time file.
73     When data is written and a fsync is issued, the filesystem attempts to
74     flush a non-existent rt device during the fsync process.
75     
76     This results in a crash dereferencing a null buftarg pointer in
77     xfs_blkdev_issue_flush():
78     
79       BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
80       IP: xfs_blkdev_issue_flush+0xd/0x20
81       .....
82       Call Trace:
83         xfs_file_fsync+0x188/0x1c0
84         vfs_fsync_range+0x3b/0xa0
85         do_fsync+0x3d/0x70
86         SyS_fsync+0x10/0x20
87         do_syscall_64+0x4d/0xb0
88         entry_SYSCALL64_slow_path+0x25/0x25
89     
90     Setting RT inode flags does not require special privileges so any
91     unprivileged user can cause this oops to occur.  To reproduce, confirm
92     kernel is compiled with CONFIG_XFS_RT=y and run:
93     
94       # mkfs.xfs -f /dev/pmem0
95       # mount /dev/pmem0 /mnt/test
96       # mkdir /mnt/test/foo
97       # xfs_io -c 'chattr +t' /mnt/test/foo
98       # xfs_io -f -c 'pwrite 0 5m' -c fsync /mnt/test/foo/bar
99     
100     Or just run xfstests with MKFS_OPTIONS="-d rtinherit=1" and wait.
101     
102     Kernels built with CONFIG_XFS_RT=n are not exposed to this bug.
103     
104     Fixes: f538d4da8d52 ("[XFS] write barrier support")
105     Cc: <stable@vger.kernel.org>
106     Signed-off-by: Richard Wareing <rwareing@fb.com>
107     Signed-off-by: Dave Chinner <david@fromorbit.com>
108     Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
109
110 diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
111 index 9301c5a6060b..dcd1292664b3 100644
112 --- a/fs/xfs/xfs_linux.h
113 +++ b/fs/xfs/xfs_linux.h
114 @@ -270,7 +270,14 @@ static inline uint64_t howmany_64(uint64_t x, uint32_t y)
115  #endif /* DEBUG */
116  
117  #ifdef CONFIG_XFS_RT
118 -#define XFS_IS_REALTIME_INODE(ip) ((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME)
119 +
120 +/*
121 + * make sure we ignore the inode flag if the filesystem doesn't have a
122 + * configured realtime device.
123 + */
124 +#define XFS_IS_REALTIME_INODE(ip)                      \
125 +       (((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME) &&  \
126 +        (ip)->i_mount->m_rtdev_targp)
127  #else
128  #define XFS_IS_REALTIME_INODE(ip) (0)
129  #endif
This page took 0.050745 seconds and 4 git commands to generate.