mtd: fix oops in dataflash driver
authorWill Newton <will.newton@gmail.com>
Fri, 30 Mar 2012 10:51:02 +0000 (11:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 May 2012 17:46:19 +0000 (10:46 -0700)
commit7561c7897963c7b1cfbd2c59eefa5de4e7c91977
tree91185f97da390729448d0174f27deadbaade885f
parent9b5707862c86f98190c900770ce3ce5ad89dd4bd
mtd: fix oops in dataflash driver

commit 7a84477c4acebf6299b6a8bd6a1d5894eb838ffa upstream.

I'm seeing an oops in mtd_dataflash.c with Linux 3.3. What appears to
be happening is that otp_select_filemode calls mtd_read_fact_prot_reg
with -1 for offset and length and a NULL buffer to test if OTP
operations are supported. This finds its way down to otp_read in
mtd_dataflash.c and causes an oops when memcpying the returned data
into the NULL buf.

None of the checks in otp_read catches the negative length and offset.
Changing the length of the dummy read to 0 prevents the oops.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/mtdchar.c