summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorPeter Osterlund <petero2@telia.com>2005-11-14 01:06:36 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-14 03:14:11 +0100
commitae7642bb05623988d8ca82b332dad1ed7bdb8ceb (patch)
tree43c1c2f9c8144f8c8ac2974f878fdc448693c4f5 /drivers/block
parent[PATCH] cpuset: fix return without releasing semaphore (diff)
downloadlinux-ae7642bb05623988d8ca82b332dad1ed7bdb8ceb.tar.xz
linux-ae7642bb05623988d8ca82b332dad1ed7bdb8ceb.zip
[PATCH] packet writing oops fix
There is an old bug in the pkt_count_states() function that causes stack corruption. When compiling with gcc 3.x or 2.x it is harmless, but gcc 4 allocates local variables differently, which makes the bug visible. Signed-off-by: Peter Osterlund <petero2@telia.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/pktcdvd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 59e5982a5db3..c0233efabeba 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -1188,7 +1188,7 @@ static void pkt_count_states(struct pktcdvd_device *pd, int *states)
struct packet_data *pkt;
int i;
- for (i = 0; i <= PACKET_NUM_STATES; i++)
+ for (i = 0; i < PACKET_NUM_STATES; i++)
states[i] = 0;
spin_lock(&pd->cdrw.active_list_lock);