lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 01 Oct 2007 18:58:15 +0400 From: "Denis V. Lunev" <dlunev@...il.com> To: Patrick McHardy <kaber@...sh.net> CC: "Denis V. Lunev" <den@...nvz.org>, davem@...emloft.net, netdev@...r.kernel.org, "Eric W. Biederman" <ebiederm@...ssion.com> Subject: Re: [PATCH] memory leak in netlink user->kernel processing Patrick McHardy wrote: > Denis V. Lunev wrote: >> netlink_kernel_create can be called with NULL as an input callback in several >> places, f.e. in kobject_uevent_init. This means that if one sends packet from >> user to kernel for such a socket, the packet will be leaked in the socket >> queue forever. >> >> This patch adds a simple generic cleanup callback for these sockets. > > > This should already be handled by netlink_getsockbypid: > > /* Don't bother queuing skb if kernel socket has no input > function */ > nlk = nlk_sk(sock); > if ((nlk->pid == 0 && !nlk->data_ready) || > (sock->sk_state == NETLINK_CONNECTED && > nlk->dst_pid != nlk_sk(ssk)->pid)) { > sock_put(sock); > return ERR_PTR(-ECONNREFUSED); > } > - > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@...r.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Looks so... By the way, Patrick, this looks like nlk->pid == 0 if and only if this is a kernel socket. Right? I have told with Alexey Kuznetsov and we have discrovered a way to get rid of skb_queue_tail(&sk->sk_receive_queue, skb); sk->sk_data_ready(sk, len); in netlink_sendskb/etc for kernel sockets and make user->kernel packets processing truly synchronous. The idea is simple, we should queue/wakeup in kernel->user direction and simply call nlk->data_ready for user->kernel direction. This will remove all the crap we have now. But we need a mark to determine the direction. Which one will be better? (nlk->data_ready) or (nlk->pid == 0) Regards, Den - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists