hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/net/sunrpc/auth_gss/svcauth_gss.c
....@@ -1156,18 +1156,23 @@
11561156 return res;
11571157
11581158 inlen = svc_getnl(argv);
1159
- if (inlen > (argv->iov_len + rqstp->rq_arg.page_len))
1159
+ if (inlen > (argv->iov_len + rqstp->rq_arg.page_len)) {
1160
+ kfree(in_handle->data);
11601161 return SVC_DENIED;
1162
+ }
11611163
11621164 pages = DIV_ROUND_UP(inlen, PAGE_SIZE);
11631165 in_token->pages = kcalloc(pages, sizeof(struct page *), GFP_KERNEL);
1164
- if (!in_token->pages)
1166
+ if (!in_token->pages) {
1167
+ kfree(in_handle->data);
11651168 return SVC_DENIED;
1169
+ }
11661170 in_token->page_base = 0;
11671171 in_token->page_len = inlen;
11681172 for (i = 0; i < pages; i++) {
11691173 in_token->pages[i] = alloc_page(GFP_KERNEL);
11701174 if (!in_token->pages[i]) {
1175
+ kfree(in_handle->data);
11711176 gss_free_in_token_pages(in_token);
11721177 return SVC_DENIED;
11731178 }