* [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak.
@ 2025-07-04 6:23 Kuniyuki Iwashima
2025-07-04 6:23 ` [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd() Kuniyuki Iwashima
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Kuniyuki Iwashima @ 2025-07-04 6:23 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev
Patch 1 fixes racy access to atmarpd found while checking RTNL usage
in clip.c.
Patch 2 fixes memory leak by ioctl(ATMARP_MKIP) and ioctl(ATMARPD_CTRL).
Patch 3 fixes infinite recursive call of clip_vcc->old_push(), which
was reported by syzbot.
Changes:
v2:
* Add patch 2
* Patch 1: Silence Sparse __rcu warning
v1: https://lore.kernel.org/netdev/20250702020437.703698-1-kuniyu@google.com/
Kuniyuki Iwashima (3):
atm: clip: Fix potential null-ptr-deref in to_atmarpd().
atm: clip: Fix memory leak of struct clip_vcc.
atm: clip: Fix infinite recursive call of clip_push().
net/atm/clip.c | 54 ++++++++++++++++++++++++++++++++++++--------------
1 file changed, 39 insertions(+), 15 deletions(-)
--
2.50.0.727.gbf7dc18ff4-goog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd().
2025-07-04 6:23 [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak Kuniyuki Iwashima
@ 2025-07-04 6:23 ` Kuniyuki Iwashima
2025-07-09 18:54 ` Simon Horman
2025-07-04 6:23 ` [PATCH v2 net 2/3] atm: clip: Fix memory leak of struct clip_vcc Kuniyuki Iwashima
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Kuniyuki Iwashima @ 2025-07-04 6:23 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev
atmarpd is protected by RTNL since commit f3a0592b37b8 ("[ATM]: clip
causes unregister hang").
However, it is not enough because to_atmarpd() is called without RTNL,
especially clip_neigh_solicit() / neigh_ops->solicit() is unsleepable.
Also, there is no RTNL dependency around atmarpd.
Let's use a private mutex and RCU to protect access to atmarpd in
to_atmarpd().
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
v2: Add __rcu to silence Sparse
---
net/atm/clip.c | 44 +++++++++++++++++++++++++++++---------------
1 file changed, 29 insertions(+), 15 deletions(-)
diff --git a/net/atm/clip.c b/net/atm/clip.c
index b234dc3bcb0d..f36f2c7d8714 100644
--- a/net/atm/clip.c
+++ b/net/atm/clip.c
@@ -45,7 +45,8 @@
#include <net/atmclip.h>
static struct net_device *clip_devs;
-static struct atm_vcc *atmarpd;
+static struct atm_vcc __rcu *atmarpd;
+static DEFINE_MUTEX(atmarpd_lock);
static struct timer_list idle_timer;
static const struct neigh_ops clip_neigh_ops;
@@ -53,24 +54,35 @@ static int to_atmarpd(enum atmarp_ctrl_type type, int itf, __be32 ip)
{
struct sock *sk;
struct atmarp_ctrl *ctrl;
+ struct atm_vcc *vcc;
struct sk_buff *skb;
+ int err = 0;
pr_debug("(%d)\n", type);
- if (!atmarpd)
- return -EUNATCH;
+
+ rcu_read_lock();
+ vcc = rcu_dereference(atmarpd);
+ if (!vcc) {
+ err = -EUNATCH;
+ goto unlock;
+ }
skb = alloc_skb(sizeof(struct atmarp_ctrl), GFP_ATOMIC);
- if (!skb)
- return -ENOMEM;
+ if (!skb) {
+ err = -ENOMEM;
+ goto unlock;
+ }
ctrl = skb_put(skb, sizeof(struct atmarp_ctrl));
ctrl->type = type;
ctrl->itf_num = itf;
ctrl->ip = ip;
- atm_force_charge(atmarpd, skb->truesize);
+ atm_force_charge(vcc, skb->truesize);
- sk = sk_atm(atmarpd);
+ sk = sk_atm(vcc);
skb_queue_tail(&sk->sk_receive_queue, skb);
sk->sk_data_ready(sk);
- return 0;
+unlock:
+ rcu_read_unlock();
+ return err;
}
static void link_vcc(struct clip_vcc *clip_vcc, struct atmarp_entry *entry)
@@ -607,10 +619,12 @@ static void atmarpd_close(struct atm_vcc *vcc)
{
pr_debug("\n");
- rtnl_lock();
- atmarpd = NULL;
+ mutex_lock(&atmarpd_lock);
+ RCU_INIT_POINTER(atmarpd, NULL);
+ mutex_unlock(&atmarpd_lock);
+
+ synchronize_rcu();
skb_queue_purge(&sk_atm(vcc)->sk_receive_queue);
- rtnl_unlock();
pr_debug("(done)\n");
module_put(THIS_MODULE);
@@ -631,15 +645,15 @@ static struct atm_dev atmarpd_dev = {
static int atm_init_atmarp(struct atm_vcc *vcc)
{
- rtnl_lock();
+ mutex_lock(&atmarpd_lock);
if (atmarpd) {
- rtnl_unlock();
+ mutex_unlock(&atmarpd_lock);
return -EADDRINUSE;
}
mod_timer(&idle_timer, jiffies + CLIP_CHECK_INTERVAL * HZ);
- atmarpd = vcc;
+ rcu_assign_pointer(atmarpd, vcc);
set_bit(ATM_VF_META, &vcc->flags);
set_bit(ATM_VF_READY, &vcc->flags);
/* allow replies and avoid getting closed if signaling dies */
@@ -648,7 +662,7 @@ static int atm_init_atmarp(struct atm_vcc *vcc)
vcc->push = NULL;
vcc->pop = NULL; /* crash */
vcc->push_oam = NULL; /* crash */
- rtnl_unlock();
+ mutex_unlock(&atmarpd_lock);
return 0;
}
--
2.50.0.727.gbf7dc18ff4-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 net 2/3] atm: clip: Fix memory leak of struct clip_vcc.
2025-07-04 6:23 [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak Kuniyuki Iwashima
2025-07-04 6:23 ` [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd() Kuniyuki Iwashima
@ 2025-07-04 6:23 ` Kuniyuki Iwashima
2025-07-09 18:54 ` Simon Horman
2025-07-04 6:23 ` [PATCH v2 net 3/3] atm: clip: Fix infinite recursive call of clip_push() Kuniyuki Iwashima
2025-07-10 1:35 ` [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak patchwork-bot+netdevbpf
3 siblings, 1 reply; 8+ messages in thread
From: Kuniyuki Iwashima @ 2025-07-04 6:23 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev
ioctl(ATMARP_MKIP) allocates struct clip_vcc and set it to
vcc->user_back.
The code assumes that vcc_destroy_socket() passes NULL skb
to vcc->push() when the socket is close()d, and then clip_push()
frees clip_vcc.
However, ioctl(ATMARPD_CTRL) sets NULL to vcc->push() in
atm_init_atmarp(), resulting in memory leak.
Let's serialise two ioctl() by lock_sock() and check vcc->push()
in atm_init_atmarp() to prevent memleak.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
net/atm/clip.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/net/atm/clip.c b/net/atm/clip.c
index f36f2c7d8714..9c9c6c3d9886 100644
--- a/net/atm/clip.c
+++ b/net/atm/clip.c
@@ -645,6 +645,9 @@ static struct atm_dev atmarpd_dev = {
static int atm_init_atmarp(struct atm_vcc *vcc)
{
+ if (vcc->push == clip_push)
+ return -EINVAL;
+
mutex_lock(&atmarpd_lock);
if (atmarpd) {
mutex_unlock(&atmarpd_lock);
@@ -669,6 +672,7 @@ static int atm_init_atmarp(struct atm_vcc *vcc)
static int clip_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{
struct atm_vcc *vcc = ATM_SD(sock);
+ struct sock *sk = sock->sk;
int err = 0;
switch (cmd) {
@@ -689,14 +693,18 @@ static int clip_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
err = clip_create(arg);
break;
case ATMARPD_CTRL:
+ lock_sock(sk);
err = atm_init_atmarp(vcc);
if (!err) {
sock->state = SS_CONNECTED;
__module_get(THIS_MODULE);
}
+ release_sock(sk);
break;
case ATMARP_MKIP:
+ lock_sock(sk);
err = clip_mkip(vcc, arg);
+ release_sock(sk);
break;
case ATMARP_SETENTRY:
err = clip_setentry(vcc, (__force __be32)arg);
--
2.50.0.727.gbf7dc18ff4-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 net 3/3] atm: clip: Fix infinite recursive call of clip_push().
2025-07-04 6:23 [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak Kuniyuki Iwashima
2025-07-04 6:23 ` [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd() Kuniyuki Iwashima
2025-07-04 6:23 ` [PATCH v2 net 2/3] atm: clip: Fix memory leak of struct clip_vcc Kuniyuki Iwashima
@ 2025-07-04 6:23 ` Kuniyuki Iwashima
2025-07-09 18:54 ` Simon Horman
2025-07-10 1:35 ` [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak patchwork-bot+netdevbpf
3 siblings, 1 reply; 8+ messages in thread
From: Kuniyuki Iwashima @ 2025-07-04 6:23 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev,
syzbot+0c77cccd6b7cd917b35a
syzbot reported the splat below. [0]
This happens if we call ioctl(ATMARP_MKIP) more than once.
During the first call, clip_mkip() sets clip_push() to vcc->push(),
and the second call copies it to clip_vcc->old_push().
Later, when the socket is close()d, vcc_destroy_socket() passes
NULL skb to clip_push(), which calls clip_vcc->old_push(),
triggering the infinite recursion.
Let's prevent the second ioctl(ATMARP_MKIP) by checking
vcc->user_back, which is allocated by the first call as clip_vcc.
Note also that we use lock_sock() to prevent racy calls.
[0]:
BUG: TASK stack guard page was hit at ffffc9000d66fff8 (stack is ffffc9000d670000..ffffc9000d678000)
Oops: stack guard page: 0000 [#1] SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5322 Comm: syz.0.0 Not tainted 6.16.0-rc4-syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:clip_push+0x5/0x720 net/atm/clip.c:191
Code: e0 8f aa 8c e8 1c ad 5b fa eb ae 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 55 <41> 57 41 56 41 55 41 54 53 48 83 ec 20 48 89 f3 49 89 fd 48 bd 00
RSP: 0018:ffffc9000d670000 EFLAGS: 00010246
RAX: 1ffff1100235a4a5 RBX: ffff888011ad2508 RCX: ffff8880003c0000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888037f01000
RBP: dffffc0000000000 R08: ffffffff8fa104f7 R09: 1ffffffff1f4209e
R10: dffffc0000000000 R11: ffffffff8a99b300 R12: ffffffff8a99b300
R13: ffff888037f01000 R14: ffff888011ad2500 R15: ffff888037f01578
FS: 000055557ab6d500(0000) GS:ffff88808d250000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffc9000d66fff8 CR3: 0000000043172000 CR4: 0000000000352ef0
Call Trace:
<TASK>
clip_push+0x6dc/0x720 net/atm/clip.c:200
clip_push+0x6dc/0x720 net/atm/clip.c:200
clip_push+0x6dc/0x720 net/atm/clip.c:200
...
clip_push+0x6dc/0x720 net/atm/clip.c:200
clip_push+0x6dc/0x720 net/atm/clip.c:200
clip_push+0x6dc/0x720 net/atm/clip.c:200
vcc_destroy_socket net/atm/common.c:183 [inline]
vcc_release+0x157/0x460 net/atm/common.c:205
__sock_release net/socket.c:647 [inline]
sock_close+0xc0/0x240 net/socket.c:1391
__fput+0x449/0xa70 fs/file_table.c:465
task_work_run+0x1d1/0x260 kernel/task_work.c:227
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
exit_to_user_mode_loop+0xec/0x110 kernel/entry/common.c:114
exit_to_user_mode_prepare include/linux/entry-common.h:330 [inline]
syscall_exit_to_user_mode_work include/linux/entry-common.h:414 [inline]
syscall_exit_to_user_mode include/linux/entry-common.h:449 [inline]
do_syscall_64+0x2bd/0x3b0 arch/x86/entry/syscall_64.c:100
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7ff31c98e929
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fffb5aa1f78 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4
RAX: 0000000000000000 RBX: 0000000000012747 RCX: 00007ff31c98e929
RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003
RBP: 00007ff31cbb7ba0 R08: 0000000000000001 R09: 0000000db5aa226f
R10: 00007ff31c7ff030 R11: 0000000000000246 R12: 00007ff31cbb608c
R13: 00007ff31cbb6080 R14: ffffffffffffffff R15: 00007fffb5aa2090
</TASK>
Modules linked in:
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: syzbot+0c77cccd6b7cd917b35a@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=2371d94d248d126c1eb1
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
net/atm/clip.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/atm/clip.c b/net/atm/clip.c
index 9c9c6c3d9886..a30c5a270545 100644
--- a/net/atm/clip.c
+++ b/net/atm/clip.c
@@ -429,6 +429,8 @@ static int clip_mkip(struct atm_vcc *vcc, int timeout)
if (!vcc->push)
return -EBADFD;
+ if (vcc->user_back)
+ return -EINVAL;
clip_vcc = kmalloc(sizeof(struct clip_vcc), GFP_KERNEL);
if (!clip_vcc)
return -ENOMEM;
--
2.50.0.727.gbf7dc18ff4-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd().
2025-07-04 6:23 ` [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd() Kuniyuki Iwashima
@ 2025-07-09 18:54 ` Simon Horman
0 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2025-07-09 18:54 UTC (permalink / raw)
To: Kuniyuki Iwashima
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Kuniyuki Iwashima, netdev
On Fri, Jul 04, 2025 at 06:23:51AM +0000, Kuniyuki Iwashima wrote:
> atmarpd is protected by RTNL since commit f3a0592b37b8 ("[ATM]: clip
> causes unregister hang").
>
> However, it is not enough because to_atmarpd() is called without RTNL,
> especially clip_neigh_solicit() / neigh_ops->solicit() is unsleepable.
>
> Also, there is no RTNL dependency around atmarpd.
>
> Let's use a private mutex and RCU to protect access to atmarpd in
> to_atmarpd().
>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
> ---
> v2: Add __rcu to silence Sparse
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net 2/3] atm: clip: Fix memory leak of struct clip_vcc.
2025-07-04 6:23 ` [PATCH v2 net 2/3] atm: clip: Fix memory leak of struct clip_vcc Kuniyuki Iwashima
@ 2025-07-09 18:54 ` Simon Horman
0 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2025-07-09 18:54 UTC (permalink / raw)
To: Kuniyuki Iwashima
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Kuniyuki Iwashima, netdev
On Fri, Jul 04, 2025 at 06:23:52AM +0000, Kuniyuki Iwashima wrote:
> ioctl(ATMARP_MKIP) allocates struct clip_vcc and set it to
> vcc->user_back.
>
> The code assumes that vcc_destroy_socket() passes NULL skb
> to vcc->push() when the socket is close()d, and then clip_push()
> frees clip_vcc.
>
> However, ioctl(ATMARPD_CTRL) sets NULL to vcc->push() in
> atm_init_atmarp(), resulting in memory leak.
>
> Let's serialise two ioctl() by lock_sock() and check vcc->push()
> in atm_init_atmarp() to prevent memleak.
>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net 3/3] atm: clip: Fix infinite recursive call of clip_push().
2025-07-04 6:23 ` [PATCH v2 net 3/3] atm: clip: Fix infinite recursive call of clip_push() Kuniyuki Iwashima
@ 2025-07-09 18:54 ` Simon Horman
0 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2025-07-09 18:54 UTC (permalink / raw)
To: Kuniyuki Iwashima
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Kuniyuki Iwashima, netdev, syzbot+0c77cccd6b7cd917b35a
On Fri, Jul 04, 2025 at 06:23:53AM +0000, Kuniyuki Iwashima wrote:
> syzbot reported the splat below. [0]
>
> This happens if we call ioctl(ATMARP_MKIP) more than once.
>
> During the first call, clip_mkip() sets clip_push() to vcc->push(),
> and the second call copies it to clip_vcc->old_push().
>
> Later, when the socket is close()d, vcc_destroy_socket() passes
> NULL skb to clip_push(), which calls clip_vcc->old_push(),
> triggering the infinite recursion.
>
> Let's prevent the second ioctl(ATMARP_MKIP) by checking
> vcc->user_back, which is allocated by the first call as clip_vcc.
>
> Note also that we use lock_sock() to prevent racy calls.
>
> [0]:
> BUG: TASK stack guard page was hit at ffffc9000d66fff8 (stack is ffffc9000d670000..ffffc9000d678000)
> Oops: stack guard page: 0000 [#1] SMP KASAN NOPTI
> CPU: 0 UID: 0 PID: 5322 Comm: syz.0.0 Not tainted 6.16.0-rc4-syzkaller #0 PREEMPT(full)
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
> RIP: 0010:clip_push+0x5/0x720 net/atm/clip.c:191
> Code: e0 8f aa 8c e8 1c ad 5b fa eb ae 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 55 <41> 57 41 56 41 55 41 54 53 48 83 ec 20 48 89 f3 49 89 fd 48 bd 00
> RSP: 0018:ffffc9000d670000 EFLAGS: 00010246
> RAX: 1ffff1100235a4a5 RBX: ffff888011ad2508 RCX: ffff8880003c0000
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888037f01000
> RBP: dffffc0000000000 R08: ffffffff8fa104f7 R09: 1ffffffff1f4209e
> R10: dffffc0000000000 R11: ffffffff8a99b300 R12: ffffffff8a99b300
> R13: ffff888037f01000 R14: ffff888011ad2500 R15: ffff888037f01578
> FS: 000055557ab6d500(0000) GS:ffff88808d250000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffc9000d66fff8 CR3: 0000000043172000 CR4: 0000000000352ef0
> Call Trace:
> <TASK>
> clip_push+0x6dc/0x720 net/atm/clip.c:200
> clip_push+0x6dc/0x720 net/atm/clip.c:200
> clip_push+0x6dc/0x720 net/atm/clip.c:200
> ...
> clip_push+0x6dc/0x720 net/atm/clip.c:200
> clip_push+0x6dc/0x720 net/atm/clip.c:200
> clip_push+0x6dc/0x720 net/atm/clip.c:200
> vcc_destroy_socket net/atm/common.c:183 [inline]
> vcc_release+0x157/0x460 net/atm/common.c:205
> __sock_release net/socket.c:647 [inline]
> sock_close+0xc0/0x240 net/socket.c:1391
> __fput+0x449/0xa70 fs/file_table.c:465
> task_work_run+0x1d1/0x260 kernel/task_work.c:227
> resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
> exit_to_user_mode_loop+0xec/0x110 kernel/entry/common.c:114
> exit_to_user_mode_prepare include/linux/entry-common.h:330 [inline]
> syscall_exit_to_user_mode_work include/linux/entry-common.h:414 [inline]
> syscall_exit_to_user_mode include/linux/entry-common.h:449 [inline]
> do_syscall_64+0x2bd/0x3b0 arch/x86/entry/syscall_64.c:100
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7ff31c98e929
> Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007fffb5aa1f78 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4
> RAX: 0000000000000000 RBX: 0000000000012747 RCX: 00007ff31c98e929
> RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003
> RBP: 00007ff31cbb7ba0 R08: 0000000000000001 R09: 0000000db5aa226f
> R10: 00007ff31c7ff030 R11: 0000000000000246 R12: 00007ff31cbb608c
> R13: 00007ff31cbb6080 R14: ffffffffffffffff R15: 00007fffb5aa2090
> </TASK>
> Modules linked in:
>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Reported-by: syzbot+0c77cccd6b7cd917b35a@syzkaller.appspotmail.com
> Closes: https://syzkaller.appspot.com/bug?extid=2371d94d248d126c1eb1
> Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak.
2025-07-04 6:23 [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak Kuniyuki Iwashima
` (2 preceding siblings ...)
2025-07-04 6:23 ` [PATCH v2 net 3/3] atm: clip: Fix infinite recursive call of clip_push() Kuniyuki Iwashima
@ 2025-07-10 1:35 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-07-10 1:35 UTC (permalink / raw)
To: Kuniyuki Iwashima; +Cc: davem, edumazet, kuba, pabeni, horms, kuni1840, netdev
Hello:
This series was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 4 Jul 2025 06:23:50 +0000 you wrote:
> Patch 1 fixes racy access to atmarpd found while checking RTNL usage
> in clip.c.
>
> Patch 2 fixes memory leak by ioctl(ATMARP_MKIP) and ioctl(ATMARPD_CTRL).
>
> Patch 3 fixes infinite recursive call of clip_vcc->old_push(), which
> was reported by syzbot.
>
> [...]
Here is the summary with links:
- [v2,net,1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd().
https://git.kernel.org/netdev/net/c/706cc3647713
- [v2,net,2/3] atm: clip: Fix memory leak of struct clip_vcc.
https://git.kernel.org/netdev/net/c/62dba28275a9
- [v2,net,3/3] atm: clip: Fix infinite recursive call of clip_push().
https://git.kernel.org/netdev/net/c/c489f3283dbf
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-07-10 1:35 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-04 6:23 [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak Kuniyuki Iwashima
2025-07-04 6:23 ` [PATCH v2 net 1/3] atm: clip: Fix potential null-ptr-deref in to_atmarpd() Kuniyuki Iwashima
2025-07-09 18:54 ` Simon Horman
2025-07-04 6:23 ` [PATCH v2 net 2/3] atm: clip: Fix memory leak of struct clip_vcc Kuniyuki Iwashima
2025-07-09 18:54 ` Simon Horman
2025-07-04 6:23 ` [PATCH v2 net 3/3] atm: clip: Fix infinite recursive call of clip_push() Kuniyuki Iwashima
2025-07-09 18:54 ` Simon Horman
2025-07-10 1:35 ` [PATCH v2 net 0/3] atm: clip: Fix infinite recursion, potential null-ptr-deref, and memleak patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).