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 linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CACeb84vFNfPcC=FJ3HEjraZ02Zi2igbK0Q=M3=pUw7AKG=u3PQ@mail.gmail.com> Date: Fri, 5 May 2017 08:57:35 +0530 From: "Anand H. Krishnan" <anandhkrishnan@...il.com> To: netdev@...r.kernel.org Subject: Bug in skb_gro_receive - possible bad page state problems? Hello, Is skb_gro_receive doing the right thing for cloned packets? When we are merging fragments, we do not seem to be taking a reference to the underlying page. To me, it looks like it should work fine for non-cloned packets. However, for cloned packets, when the gro-ed packet is eventually freed (because the original skb was not cloned and hence reference was 1), the merged skb's frags also get freed (put_page-ed) without taking into account the other references that were held for the fragments (dataref). We saw crashes because of this behavior. Our setup had a third party kernel forwarding module which uses GRO (napi_gro_receive). Doing iperf3 with small packets and doing tcpdump on the receiving tap interface results in the problem. With DEBUG_VM enabled, put page crashes. Without DEBUG_VM, bad page state results. Your thoughts (please CC me, since I am not part of this list). Thanks, Anand
Powered by blists - more mailing lists