From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757666AbcCaWPh (ORCPT ); Thu, 31 Mar 2016 18:15:37 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:36222 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753382AbcCaWPg (ORCPT ); Thu, 31 Mar 2016 18:15:36 -0400 Date: Thu, 31 Mar 2016 15:15:34 -0700 From: Andrew Morton To: Jiri Slaby Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 4/4] fork: free thread in copy_process on failure Message-Id: <20160331151534.ac69555f6eea83020b29211b@linux-foundation.org> In-Reply-To: <1459410955-5422-4-git-send-email-jslaby@suse.cz> References: <1459410955-5422-1-git-send-email-jslaby@suse.cz> <1459410955-5422-4-git-send-email-jslaby@suse.cz> X-Mailer: Sylpheed 3.4.1 (GTK+ 2.24.23; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 31 Mar 2016 09:55:55 +0200 Jiri Slaby wrote: > When using this program (as root): > > ... > > ret = ioperm(10, 20, 0); ah-hah. > if (ret < 0) > err(1, "ioperm"); > > for (a = 0; a < ITER; a++) > run_forkers(); > > return 0; > } > > kmemleak reports many occurences of this leak: > unreferenced object 0xffff8805917c8000 (size 8192): > comm "fork-leak", pid 2932, jiffies 4295354292 (age 1871.028s) > hex dump (first 32 bytes): > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ > backtrace: > [] kmemdup+0x25/0x50 > [] copy_thread_tls+0x6c3/0x9a0 > [] copy_process+0x1a84/0x5790 > [] wake_up_new_task+0x2d5/0x6f0 > [] _do_fork+0x12d/0x820 > ... The missing info here is "due to the leakage of the memory which should have been freed in arch/x86/kernel/process.c:exit_thread().