Commit 589777eab7360894b7ca1c4ba9d252e03b51225b
Committed by
Linus Torvalds
1 parent
3a845099b2
Exists in
master
and in
4 other branches
[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
lib/idr.c
... | ... | @@ -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; |