The m->pool_to[] array has "maxpools" number of elements. It's
allocated in svc_pool_map_alloc_arrays() which we called earlier in the
function. This test should be >= instead of >.
Signed-off-by: Dan Carpenter <[email protected]>
---
This is very old code, but hopefully the off by one doesn't affect
runtime.
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index ca8a795..349c98f 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -189,7 +189,7 @@ svc_pool_map_init_percpu(struct svc_pool_map *m)
return err;
for_each_online_cpu(cpu) {
- BUG_ON(pidx > maxpools);
+ BUG_ON(pidx >= maxpools);
m->to_pool[cpu] = pidx;
m->pool_to[pidx] = cpu;
pidx++;
On Wed, Oct 29, 2014 at 11:44:16AM +0300, Dan Carpenter wrote:
> The m->pool_to[] array has "maxpools" number of elements. It's
> allocated in svc_pool_map_alloc_arrays() which we called earlier in the
> function. This test should be >= instead of >.
>
> Signed-off-by: Dan Carpenter <[email protected]>
> ---
> This is very old code, but hopefully the off by one doesn't affect
> runtime.
Yeah, doesn't look like a big deal, but thanks, applying for 3.19.--b.
>
> diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
> index ca8a795..349c98f 100644
> --- a/net/sunrpc/svc.c
> +++ b/net/sunrpc/svc.c
> @@ -189,7 +189,7 @@ svc_pool_map_init_percpu(struct svc_pool_map *m)
> return err;
>
> for_each_online_cpu(cpu) {
> - BUG_ON(pidx > maxpools);
> + BUG_ON(pidx >= maxpools);
> m->to_pool[cpu] = pidx;
> m->pool_to[pidx] = cpu;
> pidx++;