Patch "media: lirc_zilog: Don't use dynamic static allocation" has been added to the 3.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    media: lirc_zilog: Don't use dynamic static allocation

to the 3.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     media-lirc_zilog-don-t-use-dynamic-static-allocation.patch
and it can be found in the queue-3.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From ac5b4b6bf0c84c48d7e2e3fce22e35b04282ba76 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx>
Date: Sat, 2 Nov 2013 08:16:47 -0300
Subject: media: lirc_zilog: Don't use dynamic static allocation

From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx>

commit ac5b4b6bf0c84c48d7e2e3fce22e35b04282ba76 upstream.

Dynamic static allocation is evil, as Kernel stack is too low, and
ompilation complains about it on some archs:
	drivers/staging/media/lirc/lirc_zilog.c:967:1: warning: 'read' uses dynamic stack allocation [enabled by default]
Instead, let's enforce a limit for the buffer to be 64. That should
be more than enough.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx>
Reviewed-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 drivers/staging/media/lirc/lirc_zilog.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

--- a/drivers/staging/media/lirc/lirc_zilog.c
+++ b/drivers/staging/media/lirc/lirc_zilog.c
@@ -61,6 +61,9 @@
 #include <media/lirc_dev.h>
 #include <media/lirc.h>
 
+/* Max transfer size done by I2C transfer functions */
+#define MAX_XFER_SIZE  64
+
 struct IR;
 
 struct IR_rx {
@@ -941,7 +944,14 @@ static ssize_t read(struct file *filep,
 			schedule();
 			set_current_state(TASK_INTERRUPTIBLE);
 		} else {
-			unsigned char buf[rbuf->chunk_size];
+			unsigned char buf[MAX_XFER_SIZE];
+
+			if (rbuf->chunk_size > sizeof(buf)) {
+				zilog_error("chunk_size is too big (%d)!\n",
+					    rbuf->chunk_size);
+				ret = -EINVAL;
+				break;
+			}
 			m = lirc_buffer_read(rbuf, buf);
 			if (m == rbuf->chunk_size) {
 				ret = copy_to_user((void *)outbuf+written, buf,


Patches currently in stable-queue which might be from m.chehab@xxxxxxxxxxx are

queue-3.12/media-af9015-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-dw2102-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-af9035-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-stb0899_drv-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-dibusb-common-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-cx18-struct-i2c_client-is-too-big-for-stack.patch
queue-3.12/media-tuner-xc2028-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-cimax2-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-tuners-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-v4l2-async-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-dvb-frontends-again-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-dvb-frontends-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-stv090x-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-s5h1420-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-av7110_hw-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-stv0367-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-lirc_zilog-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-cxusb-don-t-use-dynamic-static-allocation.patch
queue-3.12/media-mxl111sf-don-t-use-dynamic-static-allocation.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]