Skip to contentSkip to conversation

atkbd.c: overrun in atkbd_set_repeat_rate()

PATCH In review Florin Malita 2 participants 2 messages Aug 13, 2006 Input drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 atkbd.c: overrun in atkbd_set_repeat_rate()

This was introduced in commit 3d0f0fa0cb554541e10cb8cb84104e4b10828468:
bounds checking is performed against period[32] while indexing delay[4].

Spotted by Coverity, CID 1376.

---

drivers/input/keyboard/atkbd.c +1 -1
index 6bfa0cf..a86afd0 100644
@@ -498,7 +498,7 @@ static int atkbd_set_repeat_rate(struct 
 		i++;
 	dev->rep[REP_PERIOD] = period[i];
 
-	while (j < ARRAY_SIZE(period) - 1 && delay[j] < dev->rep[REP_DELAY])
+	while (j < ARRAY_SIZE(delay) - 1 && delay[j] < dev->rep[REP_DELAY])
 		j++;
 	dev->rep[REP_DELAY] = delay[j];
 
#1 lore raw
Quoted 5 lines · Florin Malita

This was introduced in commit 3d0f0fa0cb554541e10cb8cb84104e4b10828468:
bounds checking is performed against period[32] while indexing delay[4].

Spotted by Coverity, CID 1376.

Will apply, thank you.

Quoted 18 lines

---

drivers/input/keyboard/atkbd.c +1 -1
index 6bfa0cf..a86afd0 100644
@@ -498,7 +498,7 @@ static int atkbd_set_repeat_rate(struct 
 		i++;
 	dev->rep[REP_PERIOD] = period[i];
 
-	while (j < ARRAY_SIZE(period) - 1 && delay[j] < dev->rep[REP_DELAY])
+	while (j < ARRAY_SIZE(delay) - 1 && delay[j] < dev->rep[REP_DELAY])
 		j++;
 	dev->rep[REP_DELAY] = delay[j];
 
Signature · 1 line
Dmitry