Eric Dumazet
2520611151
crypto: af_alg - get rid of alg_memory_allocated
...
alg_memory_allocated does not seem to be really used.
alg_proto does have a .memory_allocated field, but no
corresponding .sysctl_mem.
This means sk_has_account() returns true, but all sk_prot_mem_limits()
users will trigger a NULL dereference [1].
THis was not a problem until SO_RESERVE_MEM addition.
general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1 ] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
CPU: 1 PID: 3591 Comm: syz-executor153 Not tainted 5.17.0-rc3-syzkaller-00316-gb81b1829e7e3 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:sk_prot_mem_limits include/net/sock.h:1523 [inline]
RIP: 0010:sock_reserve_memory+0x1d7/0x330 net/core/sock.c:1000
Code: 08 00 74 08 48 89 ef e8 27 20 bb f9 4c 03 7c 24 10 48 8b 6d 00 48 83 c5 08 48 89 e8 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 48 89 ef e8 fb 1f bb f9 48 8b 6d 00 4c 89 ff 48
RSP: 0018:ffffc90001f1fb68 EFLAGS: 00010202
RAX: 0000000000000001 RBX: ffff88814aabc000 RCX: dffffc0000000000
RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffffffff90e18120
RBP: 0000000000000008 R08: dffffc0000000000 R09: fffffbfff21c3025
R10: fffffbfff21c3025 R11: 0000000000000000 R12: ffffffff8d109840
R13: 0000000000001002 R14: 0000000000000001 R15: 0000000000000001
FS: 0000555556e08300(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc74416f130 CR3: 0000000073d9e000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
sock_setsockopt+0x14a9/0x3a30 net/core/sock.c:1446
__sys_setsockopt+0x5af/0x980 net/socket.c:2176
__do_sys_setsockopt net/socket.c:2191 [inline]
__se_sys_setsockopt net/socket.c:2188 [inline]
__x64_sys_setsockopt+0xb1/0xc0 net/socket.c:2188
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7fc7440fddc9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 51 15 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe98f07968 EFLAGS: 00000246 ORIG_RAX: 0000000000000036
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007fc7440fddc9
RDX: 0000000000000049 RSI: 0000000000000001 RDI: 0000000000000004
RBP: 0000000000000000 R08: 0000000000000004 R09: 00007ffe98f07990
R10: 0000000020000000 R11: 0000000000000246 R12: 00007ffe98f0798c
R13: 00007ffe98f079a0 R14: 00007ffe98f079e0 R15: 0000000000000000
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:sk_prot_mem_limits include/net/sock.h:1523 [inline]
RIP: 0010:sock_reserve_memory+0x1d7/0x330 net/core/sock.c:1000
Code: 08 00 74 08 48 89 ef e8 27 20 bb f9 4c 03 7c 24 10 48 8b 6d 00 48 83 c5 08 48 89 e8 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 48 89 ef e8 fb 1f bb f9 48 8b 6d 00 4c 89 ff 48
RSP: 0018:ffffc90001f1fb68 EFLAGS: 00010202
RAX: 0000000000000001 RBX: ffff88814aabc000 RCX: dffffc0000000000
RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffffffff90e18120
RBP: 0000000000000008 R08: dffffc0000000000 R09: fffffbfff21c3025
R10: fffffbfff21c3025 R11: 0000000000000000 R12: ffffffff8d109840
R13: 0000000000001002 R14: 0000000000000001 R15: 0000000000000001
FS: 0000555556e08300(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc74416f130 CR3: 0000000073d9e000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Fixes: 2bb2f5fb21b0 ("net: add new socket option SO_RESERVE_MEM")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Wei Wang <weiwan@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-02-15 14:29:04 +00:00
..
2022-01-09 00:18:42 +02:00
2021-06-10 19:40:14 -07:00
2019-05-30 11:26:37 -07:00
2020-07-09 18:25:23 +10:00
2021-01-03 08:41:35 +11:00
2020-01-09 11:30:58 +08:00
2021-03-19 21:59:45 +11:00
2020-11-27 17:13:40 +11:00
2021-03-19 21:59:45 +11:00
2021-03-19 21:59:45 +11:00
2020-01-09 11:30:53 +08:00
2019-07-26 14:55:33 +10:00
2022-02-15 14:29:04 +00:00
2020-08-28 16:58:28 +10:00
2020-01-09 11:30:58 +08:00
2022-02-05 15:10:07 +11:00
2021-12-13 12:04:45 -06:00
2020-08-21 14:45:27 +10:00
2020-07-19 18:16:41 -07:00
2020-09-25 17:48:52 +10:00
2020-08-21 14:45:26 +10:00
2021-01-03 08:41:35 +11:00
2020-01-09 11:30:53 +08:00
2022-02-05 15:10:07 +11:00
2020-09-11 14:39:16 +10:00
2020-07-16 21:49:08 +10:00
2020-07-16 21:49:08 +10:00
2021-01-03 08:41:39 +11:00
2022-02-04 19:22:32 +01:00
2019-05-30 11:26:32 -07:00
2021-02-10 17:55:56 +11:00
2021-02-10 17:55:56 +11:00
2021-02-10 17:55:56 +11:00
2021-02-10 17:55:56 +11:00
2019-05-24 17:27:12 +02:00
2021-01-03 08:41:35 +11:00
2021-01-03 08:41:35 +11:00
2021-01-03 08:41:35 +11:00
2020-07-16 21:49:08 +10:00
2019-11-22 18:48:39 +08:00
2021-01-03 08:41:35 +11:00
2021-01-03 08:41:35 +11:00
2019-12-11 16:37:01 +08:00
2021-04-16 21:24:27 +10:00
2020-08-21 14:45:25 +10:00
2020-08-21 14:45:25 +10:00
2020-07-16 21:49:08 +10:00
2021-10-29 21:04:03 +08:00
2019-07-08 20:57:08 -07:00
2019-12-20 14:58:35 +08:00
2019-11-01 13:38:32 +08:00
2021-01-03 08:41:35 +11:00
2020-07-16 21:49:08 +10:00
2019-11-17 09:02:43 +08:00
2020-08-07 11:33:22 -07:00
2020-01-09 11:30:53 +08:00
2019-05-30 11:26:32 -07:00
2021-12-11 16:48:05 +11:00
2021-12-11 16:48:06 +11:00
2021-01-03 08:41:35 +11:00
2021-03-26 19:55:55 +11:00
2021-10-29 21:04:03 +08:00
2021-03-13 00:04:03 +11:00
2021-10-29 21:04:03 +08:00
2021-10-29 21:04:03 +08:00
2021-03-26 19:41:58 +11:00
2020-07-16 21:49:07 +10:00
2021-10-29 21:04:03 +08:00
2019-04-18 22:15:02 +08:00
2019-04-18 22:15:02 +08:00
2021-10-29 21:04:03 +08:00
2021-01-03 08:41:35 +11:00
2021-04-02 18:28:13 +11:00
2019-07-26 14:51:57 +10:00
2020-08-07 11:33:22 -07:00
2020-07-16 21:49:08 +10:00
2020-08-07 11:33:22 -07:00
2020-01-09 11:30:53 +08:00
2020-02-18 07:35:49 -05:00
2020-07-16 21:49:08 +10:00
2021-09-24 16:03:05 +08:00
2021-12-11 16:48:06 +11:00
2021-12-31 18:10:54 +11:00
2021-12-11 16:48:06 +11:00
2022-01-18 13:03:55 +01:00
2021-11-26 16:25:17 +11:00
2021-04-02 18:28:13 +11:00
2021-05-28 15:11:44 +08:00
2019-05-30 11:26:32 -07:00
2020-07-23 17:34:20 +10:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2021-11-26 16:25:17 +11:00
2019-06-13 14:31:39 +08:00
2020-02-28 08:43:21 +08:00
2021-02-10 17:55:55 +11:00
2020-01-16 15:18:12 +08:00
2021-01-03 08:41:35 +11:00
2021-01-03 08:41:35 +11:00
2021-10-29 21:04:04 +08:00
2020-01-16 15:18:12 +08:00
2020-09-25 17:48:15 +10:00
2021-01-29 16:07:04 +11:00
2019-07-08 20:57:08 -07:00
2021-04-02 18:28:12 +11:00
2019-05-30 11:26:32 -07:00
2020-08-20 14:04:28 +10:00
2021-11-26 16:25:18 +11:00
2016-07-05 23:05:26 +08:00
2015-10-14 22:23:16 +08:00
2019-05-30 11:26:32 -07:00
2019-12-20 14:58:35 +08:00
2020-12-04 18:13:16 +11:00
2020-08-07 11:33:22 -07:00
2021-03-07 15:13:15 +11:00
2020-11-20 14:45:33 +11:00
2020-07-23 17:34:20 +10:00
2021-12-31 18:10:54 +11:00
2021-08-27 16:30:19 +08:00
2021-06-17 15:07:31 +08:00
2020-07-16 21:49:08 +10:00
2021-08-21 15:44:58 +08:00
2021-06-11 15:03:30 +08:00
2020-09-25 17:48:54 +10:00
2020-09-25 17:48:53 +10:00
2021-07-30 10:58:30 +08:00
2019-08-15 21:52:14 +10:00
2021-10-22 20:25:03 +08:00
2020-08-21 14:45:27 +10:00
2019-07-08 20:57:08 -07:00
2021-11-26 16:25:18 +11:00
2021-11-20 15:02:08 +11:00
2020-01-09 11:30:53 +08:00
2021-02-10 17:55:57 +11:00
2021-01-03 08:41:35 +11:00
2021-08-12 19:32:17 +08:00
2021-01-03 08:41:35 +11:00
2021-02-21 17:23:56 -08:00
2021-01-03 08:41:35 +11:00
2020-01-09 11:30:53 +08:00
2021-11-08 16:55:21 -08:00