Commit 589777eab7360894b7ca1c4ba9d252e03b51225b

Authored by Zaur Kambarov
Committed by Linus Torvalds
1 parent 3a845099b2

[PATCH] coverity: idr_get_new_above_int() overrun fix

This patch fixes overrun of array pa:
92   		struct idr_layer *pa[MAX_LEVEL];

in

98   		l = idp->layers;
99   		pa[l--] = NULL;

by passing idp->layers, set in
202  		idp->layers = layers;
to function  sub_alloc in
203  		v = sub_alloc(idp, ptr, &id);

Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff

... ... @@ -175,7 +175,7 @@
175 175 * Add a new layer to the top of the tree if the requested
176 176 * id is larger than the currently allocated space.
177 177 */
178   - while ((layers < MAX_LEVEL) && (id >= (1 << (layers*IDR_BITS)))) {
  178 + while ((layers < (MAX_LEVEL - 1)) && (id >= (1 << (layers*IDR_BITS)))) {
179 179 layers++;
180 180 if (!p->count)
181 181 continue;