aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/sock.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2022-02-16 09:18:01 -0800
committerJakub Kicinski <kuba@kernel.org>2022-02-17 20:06:06 -0800
commitf20cfd662a62dc62c25d9feff29eadc600455ca7 (patch)
tree431a43a57d9c61e6b9a2ab66ba62c7a99fd4dcba /net/core/sock.c
parentnet: ll_temac: Use GFP_KERNEL instead of GFP_ATOMIC when possible (diff)
downloadlinux-dev-f20cfd662a62dc62c25d9feff29eadc600455ca7.tar.xz
linux-dev-f20cfd662a62dc62c25d9feff29eadc600455ca7.zip
net: add sanity check in proto_register()
prot->memory_allocated should only be set if prot->sysctl_mem is also set. This is a followup of commit 25206111512d ("crypto: af_alg - get rid of alg_memory_allocated"). Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://lore.kernel.org/r/20220216171801.3604366-1-eric.dumazet@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r--net/core/sock.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index 09d31a7dc68f..d76218ab4999 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -3718,6 +3718,10 @@ int proto_register(struct proto *prot, int alloc_slab)
{
int ret = -ENOBUFS;
+ if (prot->memory_allocated && !prot->sysctl_mem) {
+ pr_err("%s: missing sysctl_mem\n", prot->name);
+ return -EINVAL;
+ }
if (alloc_slab) {
prot->slab = kmem_cache_create_usercopy(prot->name,
prot->obj_size, 0,