diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/sunrpc/auth_gss/gss_rpc_upcall.c | 2 | ||||
| -rw-r--r-- | net/sunrpc/auth_gss/svcauth_gss.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/net/sunrpc/auth_gss/gss_rpc_upcall.c b/net/sunrpc/auth_gss/gss_rpc_upcall.c index abbb7dcd1689..59eeed43eda2 100644 --- a/net/sunrpc/auth_gss/gss_rpc_upcall.c +++ b/net/sunrpc/auth_gss/gss_rpc_upcall.c | |||
| @@ -217,6 +217,8 @@ static void gssp_free_receive_pages(struct gssx_arg_accept_sec_context *arg) | |||
| 217 | 217 | ||
| 218 | for (i = 0; i < arg->npages && arg->pages[i]; i++) | 218 | for (i = 0; i < arg->npages && arg->pages[i]; i++) |
| 219 | __free_page(arg->pages[i]); | 219 | __free_page(arg->pages[i]); |
| 220 | |||
| 221 | kfree(arg->pages); | ||
| 220 | } | 222 | } |
| 221 | 223 | ||
| 222 | static int gssp_alloc_receive_pages(struct gssx_arg_accept_sec_context *arg) | 224 | static int gssp_alloc_receive_pages(struct gssx_arg_accept_sec_context *arg) |
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c index 224a82f24d3c..1095be9c80ab 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c | |||
| @@ -463,6 +463,8 @@ static int rsc_parse(struct cache_detail *cd, | |||
| 463 | /* number of additional gid's */ | 463 | /* number of additional gid's */ |
| 464 | if (get_int(&mesg, &N)) | 464 | if (get_int(&mesg, &N)) |
| 465 | goto out; | 465 | goto out; |
| 466 | if (N < 0 || N > NGROUPS_MAX) | ||
| 467 | goto out; | ||
| 466 | status = -ENOMEM; | 468 | status = -ENOMEM; |
| 467 | rsci.cred.cr_group_info = groups_alloc(N); | 469 | rsci.cred.cr_group_info = groups_alloc(N); |
| 468 | if (rsci.cred.cr_group_info == NULL) | 470 | if (rsci.cred.cr_group_info == NULL) |
