* [1/8] ARM: Tighten check for allowable CPSR values
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
@ 2010-08-24 22:16 ` Greg KH
2010-08-24 22:16 ` [2/8] kbuild: fix make incompatibility Greg KH
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: stable-review, torvalds, akpm, alan, Dima Zavin, Russell King
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1444 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1312
Lines: 45
From: Russell King <rmk+kernel@arm.linux.org.uk>
commit 41e2e8fd34fff909a0e40129f6ac4233ecfa67a9 upstream.
Reviewed-by: Arve Hjønnevåg <arve@android.com>
Acked-by: Dima Zavin <dima@android.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/arm/include/asm/ptrace.h | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
--- a/arch/arm/include/asm/ptrace.h
+++ b/arch/arm/include/asm/ptrace.h
@@ -124,15 +124,24 @@ struct pt_regs {
*/
static inline int valid_user_regs(struct pt_regs *regs)
{
- if (user_mode(regs) && (regs->ARM_cpsr & PSR_I_BIT) == 0) {
- regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT);
- return 1;
+ unsigned long mode = regs->ARM_cpsr & MODE_MASK;
+
+ /*
+ * Always clear the F (FIQ) and A (delayed abort) bits
+ */
+ regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT);
+
+ if ((regs->ARM_cpsr & PSR_I_BIT) == 0) {
+ if (mode == USR_MODE)
+ return 1;
+ if (elf_hwcap & HWCAP_26BIT && mode == USR26_MODE)
+ return 1;
}
/*
* Force CPSR to something logical...
*/
- regs->ARM_cpsr &= PSR_f | PSR_s | (PSR_x & ~PSR_A_BIT) | PSR_T_BIT | MODE32_BIT;
+ regs->ARM_cpsr &= PSR_f | PSR_s | PSR_x | PSR_T_BIT | MODE32_BIT;
if (!(elf_hwcap & HWCAP_26BIT))
regs->ARM_cpsr |= USR_MODE;
^ permalink raw reply [flat|nested] 9+ messages in thread* [2/8] kbuild: fix make incompatibility
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
2010-08-24 22:16 ` [1/8] ARM: Tighten check for allowable CPSR values Greg KH
@ 2010-08-24 22:16 ` Greg KH
2010-08-24 22:16 ` [3/8] selinux: use default proc sid on symlinks Greg KH
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: stable-review, torvalds, akpm, alan, Paul Smith, Sam Ravnborg,
Thomas Backlund
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1668
Lines: 58
From: Sam Ravnborg <sam@ravnborg.org>
commit 31110ebbec8688c6e9597b641101afc94e1c762a upstream.
"Paul Smith" <psmith@gnu.org> reported that we would fail
to build with a new check that may be enabled in an
upcoming version of make.
The error was:
Makefile:442: *** mixed implicit and normal rules. Stop.
The problem is that we did stuff like this:
config %config: ...
The solution was simple - the above was split into two with identical
prerequisites and commands.
With only three lines it was not worth to try to avoid the duplication.
Cc: "Paul Smith" <psmith@gnu.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Backlund <tmb@mandriva.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
Makefile | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
--- a/Makefile
+++ b/Makefile
@@ -440,7 +440,11 @@ ifeq ($(config-targets),1)
include $(srctree)/arch/$(SRCARCH)/Makefile
export KBUILD_DEFCONFIG
-config %config: scripts_basic outputmakefile FORCE
+config: scripts_basic outputmakefile FORCE
+ $(Q)mkdir -p include/linux include/config
+ $(Q)$(MAKE) $(build)=scripts/kconfig $@
+
+%config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@
@@ -1602,7 +1606,11 @@ endif
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
# Modules
-/ %/: prepare scripts FORCE
+/: prepare scripts FORCE
+ $(cmd_crmodverdir)
+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
+ $(build)=$(build-dir)
+%/: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
^ permalink raw reply [flat|nested] 9+ messages in thread* [3/8] selinux: use default proc sid on symlinks
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
2010-08-24 22:16 ` [1/8] ARM: Tighten check for allowable CPSR values Greg KH
2010-08-24 22:16 ` [2/8] kbuild: fix make incompatibility Greg KH
@ 2010-08-24 22:16 ` Greg KH
2010-08-24 22:16 ` [4/8] can: add limit for nframes and clean up signed/unsigned variables Greg KH
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: stable-review, torvalds, akpm, alan, Stephen D. Smalley,
James Morris, Florian Mickler
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1197
Lines: 32
From: Stephen Smalley <sds@tycho.nsa.gov>
commit ea6b184f7d521a503ecab71feca6e4057562252b upstream.
As we are not concerned with fine-grained control over reading of
symlinks in proc, always use the default proc SID for all proc symlinks.
This should help avoid permission issues upon changes to the proc tree
as in the /proc/net -> /proc/self/net example.
This does not alter labeling of symlinks within /proc/pid directories.
ls -Zd /proc/net output before and after the patch should show the difference.
Signed-off-by: Stephen D. Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
Cc: Florian Mickler <florian@mickler.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
security/selinux/hooks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1290,7 +1290,7 @@ static int inode_doinit_with_dentry(stru
/* Default to the fs superblock SID. */
isec->sid = sbsec->sid;
- if (sbsec->proc) {
+ if (sbsec->proc && !S_ISLNK(inode->i_mode)) {
struct proc_inode *proci = PROC_I(inode);
if (proci->pde) {
isec->sclass = inode_mode_to_security_class(inode->i_mode);
^ permalink raw reply [flat|nested] 9+ messages in thread* [4/8] can: add limit for nframes and clean up signed/unsigned variables
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
` (2 preceding siblings ...)
2010-08-24 22:16 ` [3/8] selinux: use default proc sid on symlinks Greg KH
@ 2010-08-24 22:16 ` Greg KH
2010-08-24 22:16 ` [5/8] fixes for using make 3.82 Greg KH
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: stable-review, torvalds, akpm, alan, Oliver Hartkopp,
Urs Thuermann, David S. Miller
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 4619
Lines: 144
From: Oliver Hartkopp <socketcan@hartkopp.net>
commit 5b75c4973ce779520b9d1e392483207d6f842cde upstream.
This patch adds a limit for nframes as the number of frames in TX_SETUP and
RX_SETUP are derived from a single byte multiplex value by default.
Use-cases that would require to send/filter more than 256 CAN frames should
be implemented in userspace for complexity reasons anyway.
Additionally the assignments of unsigned values from userspace to signed
values in kernelspace and vice versa are fixed by using unsigned values in
kernelspace consistently.
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Reported-by: Ben Hawkes <hawkes@google.com>
Acked-by: Urs Thuermann <urs.thuermann@volkswagen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/can/bcm.c | 38 +++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)
--- a/net/can/bcm.c
+++ b/net/can/bcm.c
@@ -58,6 +58,13 @@
#include <net/sock.h>
#include <net/net_namespace.h>
+/*
+ * To send multiple CAN frame content within TX_SETUP or to filter
+ * CAN messages with multiplex index within RX_SETUP, the number of
+ * different filters is limited to 256 due to the one byte index value.
+ */
+#define MAX_NFRAMES 256
+
/* use of last_frames[index].can_dlc */
#define RX_RECV 0x40 /* received data for this element */
#define RX_THR 0x80 /* element not been sent due to throttle feature */
@@ -86,15 +93,15 @@ struct bcm_op {
struct list_head list;
int ifindex;
canid_t can_id;
- int flags;
+ u32 flags;
unsigned long frames_abs, frames_filtered;
struct timeval ival1, ival2;
struct hrtimer timer, thrtimer;
ktime_t rx_stamp, kt_ival1, kt_ival2, kt_lastmsg;
int rx_ifindex;
- int count;
- int nframes;
- int currframe;
+ u32 count;
+ u32 nframes;
+ u32 currframe;
struct can_frame *frames;
struct can_frame *last_frames;
struct can_frame sframe;
@@ -173,7 +180,7 @@ static int bcm_read_proc(char *page, cha
len += snprintf(page + len, PAGE_SIZE - len,
"rx_op: %03X %-5s ",
op->can_id, bcm_proc_getifname(op->ifindex));
- len += snprintf(page + len, PAGE_SIZE - len, "[%d]%c ",
+ len += snprintf(page + len, PAGE_SIZE - len, "[%u]%c ",
op->nframes,
(op->flags & RX_CHECK_DLC)?'d':' ');
if (op->kt_ival1.tv64)
@@ -207,7 +214,7 @@ static int bcm_read_proc(char *page, cha
list_for_each_entry(op, &bo->tx_ops, list) {
len += snprintf(page + len, PAGE_SIZE - len,
- "tx_op: %03X %s [%d] ",
+ "tx_op: %03X %s [%u] ",
op->can_id, bcm_proc_getifname(op->ifindex),
op->nframes);
@@ -288,7 +295,7 @@ static void bcm_send_to_user(struct bcm_
struct can_frame *firstframe;
struct sockaddr_can *addr;
struct sock *sk = op->sk;
- int datalen = head->nframes * CFSIZ;
+ unsigned int datalen = head->nframes * CFSIZ;
int err;
skb = alloc_skb(sizeof(*head) + datalen, gfp_any());
@@ -466,7 +473,7 @@ static void bcm_rx_update_and_send(struc
* bcm_rx_cmp_to_index - (bit)compares the currently received data to formerly
* received data stored in op->last_frames[]
*/
-static void bcm_rx_cmp_to_index(struct bcm_op *op, int index,
+static void bcm_rx_cmp_to_index(struct bcm_op *op, unsigned int index,
struct can_frame *rxdata)
{
/*
@@ -548,7 +555,7 @@ static int bcm_rx_thr_flush(struct bcm_o
int updated = 0;
if (op->nframes > 1) {
- int i;
+ unsigned int i;
/* for MUX filter we start at index 1 */
for (i = 1; i < op->nframes; i++) {
@@ -597,7 +604,7 @@ static void bcm_rx_handler(struct sk_buf
{
struct bcm_op *op = (struct bcm_op *)data;
struct can_frame rxframe;
- int i;
+ unsigned int i;
/* disable timeout */
hrtimer_cancel(&op->timer);
@@ -799,14 +806,15 @@ static int bcm_tx_setup(struct bcm_msg_h
{
struct bcm_sock *bo = bcm_sk(sk);
struct bcm_op *op;
- int i, err;
+ unsigned int i;
+ int err;
/* we need a real device to send frames */
if (!ifindex)
return -ENODEV;
- /* we need at least one can_frame */
- if (msg_head->nframes < 1)
+ /* check nframes boundaries - we need at least one can_frame */
+ if (msg_head->nframes < 1 || msg_head->nframes > MAX_NFRAMES)
return -EINVAL;
/* check the given can_id */
@@ -966,6 +974,10 @@ static int bcm_rx_setup(struct bcm_msg_h
msg_head->nframes = 0;
}
+ /* the first element contains the mux-mask => MAX_NFRAMES + 1 */
+ if (msg_head->nframes > MAX_NFRAMES + 1)
+ return -EINVAL;
+
if ((msg_head->flags & RX_RTR_FRAME) &&
((msg_head->nframes != 1) ||
(!(msg_head->can_id & CAN_RTR_FLAG))))
^ permalink raw reply [flat|nested] 9+ messages in thread* [5/8] fixes for using make 3.82
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
` (3 preceding siblings ...)
2010-08-24 22:16 ` [4/8] can: add limit for nframes and clean up signed/unsigned variables Greg KH
@ 2010-08-24 22:16 ` Greg KH
2010-08-24 22:16 ` [6/8] drm: stop information leak of old kernel stack Greg KH
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:16 UTC (permalink / raw)
To: linux-kernel, stable
Cc: stable-review, torvalds, akpm, alan, Jan Beulich, Sam Ravnborg,
Michal Marek
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1318
Lines: 44
From: Jan Beulich <JBeulich@novell.com>
commit 3c955b407a084810f57260d61548cc92c14bc627 upstream.
It doesn't like pattern and explicit rules to be on the same line,
and it seems to be more picky when matching file (or really directory)
names with different numbers of trailing slashes.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Andrew Benton <b3nton@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
firmware/Makefile | 2 +-
scripts/mkmakefile | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -75,7 +75,7 @@ fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia
fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)
# Directories which we _might_ need to create, so we have a rule for them.
-firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(fw-external-y) $(fw-shipped-all))))
+firmware-dirs := $(sort $(addprefix $(objtree)/$(obj)/,$(dir $(fw-external-y) $(fw-shipped-all))))
quiet_cmd_mkdir = MKDIR $(patsubst $(objtree)/%,%,$@)
cmd_mkdir = mkdir -p $@
--- a/scripts/mkmakefile
+++ b/scripts/mkmakefile
@@ -42,7 +42,9 @@ all:
Makefile:;
-\$(all) %/: all
+\$(all): all
@:
+%/: all
+ @:
EOF
^ permalink raw reply [flat|nested] 9+ messages in thread* [6/8] drm: stop information leak of old kernel stack.
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
` (4 preceding siblings ...)
2010-08-24 22:16 ` [5/8] fixes for using make 3.82 Greg KH
@ 2010-08-24 22:16 ` Greg KH
2010-08-24 22:17 ` [7/8] USB: add device IDs for igotu to navman Greg KH
2010-08-24 22:17 ` [8/8] USB: io_ti: check firmware version before updating Greg KH
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:16 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: stable-review, torvalds, akpm, alan, Dave Airlie
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1047
Lines: 36
From: Dave Airlie <airlied@redhat.com>
commit b9f0aee83335db1f3915f4e42a5e21b351740afd upstream.
non-critical issue, CVE-2010-2803
Userspace controls the amount of memory to be allocate, so it can
get the ioctl to allocate more memory than the kernel uses, and get
access to kernel stack. This can only be done for processes authenticated
to the X server for DRI access, and if the user has DRI access.
Fix is to just memset the data to 0 if the user doesn't copy into
it in the first place.
Reported-by: Kees Cook <kees@ubuntu.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/gpu/drm/drm_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -504,7 +504,9 @@ int drm_ioctl(struct inode *inode, struc
retcode = -EFAULT;
goto err_i1;
}
- }
+ } else
+ memset(kdata, 0, _IOC_SIZE(cmd));
+
retcode = func(dev, kdata, file_priv);
if ((retcode == 0) && (cmd & IOC_OUT)) {
^ permalink raw reply [flat|nested] 9+ messages in thread* [7/8] USB: add device IDs for igotu to navman
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
` (5 preceding siblings ...)
2010-08-24 22:16 ` [6/8] drm: stop information leak of old kernel stack Greg KH
@ 2010-08-24 22:17 ` Greg KH
2010-08-24 22:17 ` [8/8] USB: io_ti: check firmware version before updating Greg KH
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:17 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: stable-review, torvalds, akpm, alan
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1226
Lines: 38
From: Ross Burton <ross@linux.intel.com>
commit 0eee6a2b2a52e17066a572d30ad2805d3ebc7508 upstream.
I recently bought a i-gotU USB GPS, and whilst hunting around for linux
support discovered this post by you back in 2009:
http://kerneltrap.org/mailarchive/linux-usb/2009/3/12/5148644
>Try the navman driver instead. You can either add the device id to the
> driver and rebuild it, or do this before you plug the device in:
> modprobe navman
> echo -n "0x0df7 0x0900" > /sys/bus/usb-serial/drivers/navman/new_id
>
> and then plug your device in and see if that works.
I can confirm that the navman driver works with the right device IDs on
my i-gotU GT-600, which has the same device IDs. Attached is a patch
adding the IDs.
From: Ross Burton <ross@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/serial/navman.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/usb/serial/navman.c
+++ b/drivers/usb/serial/navman.c
@@ -24,6 +24,7 @@ static int debug;
static struct usb_device_id id_table [] = {
{ USB_DEVICE(0x0a99, 0x0001) }, /* Talon Technology device */
+ { USB_DEVICE(0x0df7, 0x0900) }, /* Mobile Action i-gotU */
{ },
};
MODULE_DEVICE_TABLE(usb, id_table);
^ permalink raw reply [flat|nested] 9+ messages in thread* [8/8] USB: io_ti: check firmware version before updating
2010-08-24 22:46 [0/8] 2.6.27.53-stable review Greg KH
` (6 preceding siblings ...)
2010-08-24 22:17 ` [7/8] USB: add device IDs for igotu to navman Greg KH
@ 2010-08-24 22:17 ` Greg KH
7 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2010-08-24 22:17 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: stable-review, torvalds, akpm, alan, Alan Stern
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
Content-Length: 1094
Lines: 32
From: Greg Kroah-Hartman <gregkh@suse.de>
commit 0827a9ff2bbcbb03c33f1a6eb283fe051059482c upstream.
If we can't read the firmware for a device from the disk, and yet the
device already has a valid firmware image in it, we don't want to
replace the firmware with something invalid. So check the version
number to be less than the current one to verify this is the correct
thing to do.
Reported-by: Chris Beauchamp <chris@chillibean.tv>
Tested-by: Chris Beauchamp <chris@chillibean.tv>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/serial/io_ti.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -1156,7 +1156,7 @@ static int download_fw(struct edgeport_s
/* Check if we have an old version in the I2C and
update if necessary */
- if (download_cur_ver != download_new_ver) {
+ if (download_cur_ver < download_new_ver) {
dbg("%s - Update I2C dld from %d.%d to %d.%d",
__func__,
firmware_version->Ver_Major,
^ permalink raw reply [flat|nested] 9+ messages in thread