aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåvard Skinnemoen <hskinnemoen@atmel.com>2006-09-15 11:19:31 -0400
committerDavid Woodhouse <dwmw2@infradead.org>2006-09-16 08:54:17 -0400
commitde591dacf3034977b3fb94b61d08240c8b35c39d (patch)
treedea9eb00d70b85c5bafba142ee0ea77369f4e4a5
parentd882687c51b52424a56992578ce7636b3f3c8d41 (diff)
MTD: Fix bug in fixup_convert_atmel_pri
The memset() in fixup_convert_atmel_pri is supposed to zero out everything except the first 5 bytes in *extp, but it ends up zeroing out something way outside the struct instead. Fix this potentially dangerous code by casting the pointer to char * before doing arithmetic. Signed-off-by: Håvard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0002.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index ddc5bd783354..a482e8922de1 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -175,7 +175,7 @@ static void fixup_convert_atmel_pri(struct mtd_info *mtd, void *param)
175 struct cfi_pri_atmel atmel_pri; 175 struct cfi_pri_atmel atmel_pri;
176 176
177 memcpy(&atmel_pri, extp, sizeof(atmel_pri)); 177 memcpy(&atmel_pri, extp, sizeof(atmel_pri));
178 memset(extp + 5, 0, sizeof(*extp) - 5); 178 memset((char *)extp + 5, 0, sizeof(*extp) - 5);
179 179
180 if (atmel_pri.Features & 0x02) 180 if (atmel_pri.Features & 0x02)
181 extp->EraseSuspend = 2; 181 extp->EraseSuspend = 2;