From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754616AbdDLPR0 (ORCPT ); Wed, 12 Apr 2017 11:17:26 -0400 Received: from mail-eopbgr20104.outbound.protection.outlook.com ([40.107.2.104]:18656 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753254AbdDLPRX (ORCPT ); Wed, 12 Apr 2017 11:17:23 -0400 Authentication-Results: openvz.org; dkim=none (message not signed) header.d=none;openvz.org; dmarc=none action=none header.from=virtuozzo.com; Subject: [PATCH] pidns: Disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid() From: Kirill Tkhai To: , , , , Date: Wed, 12 Apr 2017 18:17:17 +0300 Message-ID: <149201021004.4863.6762095011554287922.stgit@localhost.localdomain> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM4PR0501CA0035.eurprd05.prod.outlook.com (10.167.83.173) To VI1PR0802MB2287.eurprd08.prod.outlook.com (10.172.13.142) X-MS-Office365-Filtering-Correlation-Id: a5c2a193-c9f7-452f-3674-08d481b703e7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:VI1PR0802MB2287; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2287;3:knjI7gYDoEiUGePQOvHcEIiyKw4mb8zbKkcIlZ0x5dT5O4XAZKDShBFiWJiPnzn0uwZuYlg48RageGoS+V1EUFY5ggaIzqRxeGEB+oemrQFp3i55+CbI56Kwhtc8DuD2xFqwRiu7KSNh4NkCrHsInRJOEqBbeDM2pNa3KfV0fdjXWewppcYuu/sTm4BnEQjZyCGIOJ+ne0Ql7V78CQgY06Hwci3ycxberc0FRh9aiUPz++vCQWBtfrJeCow9ceLsJaWtGYrkiRA40xYwvDBTV2sbzhVV+qqQDxDWVL2F764vk+2HJHSMYM9gqdNQggkv1uiF3CtMc5NkgCdw81zTTg==;25:4IyXdpjqRpxufnJOJLzsUXA+7biZa75j14tOt2dWL6wonykdYYhFzJOf3omW41inybp6Nl8Dm13dEt00SbpQrUs3gn4DCQQIPOo6WWqyNfZp7fcjPG4WW+2l4ybE9qZ0xalDpJhB5DbBKF7p9AiNKki+YjJybOUGYkYQwjyxEgbHVSKYIHaZLGmf/hpoAQzUQmoyFaCvNJQJfy4DDhYXzhPN4DAZGU6B1Ld4+72cmTlknKelTnRZZvi3dHw3N3m2PfWYl2731L05YitnZEbfUEfuOOjgwXI9HltWqLqTlvqBlVpH2C6P+34HZKKHpfLS/q76SfdL8HFBZrf1/6L3HmJZSqzFtkEPHTwVNxYltuoZsHNfggiJrboKHBNZ+6Dzi4aM6Rlsfz4SbIE5Zjd5t3oPxM0nq3MuOKWVmcbla+YmDa+LcE81gDBIbgiiKVagFksvNv8L68PUMZ4Plm1/oA== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2287;31:aZNSYy6IdZY8zJsZ3PlE/Rh80JOw4WXnZsYYC9q/3JnCz0tlYyp8Z6YjlFFGmAJukJsJCLGv3ZlKmeLDSgvJ4/7yIqbDdjqP2jdhIYmVo3FVcg9lNZ4smIwR+c2XMNoeepQ9tQ5ym/+PDPIwqEnzObV2zGR5haRQZzGf0/vu1d60PcvneW84GfFiU6AU6DaxVp72xpk94qrIfWI99j3OyGukdKdgq1KCQpcbSmzo00q/zvGjhR01ozPB5KuXZba4;20:VOLtelKpohL9jlggIlhpgvWyRrURqBbyZvfcWMD8jLV9ulm7lEmBiZBUv0t4CwNxdLiX6hIg/BOygfUTFz/LUt6QY3ufom10lwZIJfRo3eyCe6cdQeGM6MV0tGQS7KX/y7Wv8U68949JRh2Il/cZ34NW+GtAVv5082kUCIFTfz7FsmppLHmZh6ibN6fhoWky6KXlIJ8Q+lInCqhl30NswSsbZ3dCEF0t7utfIMFSVN2yDaG+Weh1sS4t8m2NxuYFfSV4yt/mENVRmAq+onAXp30YhdYUvH3DmV0ma6tGKw0bqHggntZrfsdbYjfJjel92rnHpN0s0cCcZ889v2ldoVOjNm5g9vGEUOueZb24PXvCKtTeRNiBHFjQUapS9jH4rent6NN6A/1xXUeb3mxDDQ2/1PVgbAnNqxCVuzeJgrU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123564025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(6072148);SRVR:VI1PR0802MB2287;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0802MB2287; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2287;4:rhevFI4EZAr82f9EAoHOO2HiZeSAEAqLd6Nzgtn2Zz8AYfhEqk6MWLKRAvjbsg4HYpfNY2WNcMWyPbWzfhBT6UPhyMCSGWHrr2G6yCZBEbuD5BtsWqbwnkqBbgjD+SJMRHp6K0AgNp+QgT3ATQ7ddHs/plP5jBKscV279m1tKoHcNqAqoEPqJs21Ub6okARQcO3ZtKshR3uItOCAPCKi3+aqxxEeIvKAOSY3voawj4Aos2bYzG+VEARcl61yJ1DiwMAmluawRBy8h3BcGxH6E9pW9PV0N/wy4/dyEFr7O0HUHAgSr1uDC9LznhrxL6580IbXqozv6Uvn7pCiBB0Y5CXOas3tLkFSXL+ticfuiu40CuqiUqq0WfsYXr8zQWn+NALJH19t3k7SGJrmk918vL7ebnTUWlxodUZAFdsj7tHyTO1pPRctIdhJFObGRzhai3OIzn2wBLiPR1S4B8pE5VOFL+JjBPYMRGeA282g1DgCXjwMwfPgGaYQan27DHZaVbCQi9sCagNtg3iujq4P+Xpxe0nh0RfJSgjfotrNvoi7t5Ov4uAxP9VgCkPN+fgZkt+MGFS0CTKN/SySElqLlEqtpOlkI5Xso5gZVG2VDGtEdSTUjOKpaF0w0kLX+u9sOQCb+ErMEXMkY0vnIDCLgdjB2PCO5MBxlBumetSHDoj5+6P6xwVISHlNwKT263AZLgs+Dz6QsYZbIWHlmO9/WA== X-Forefront-PRVS: 027578BB13 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6069001)(39400400002)(39410400002)(39830400002)(39450400003)(5660300001)(3846002)(230700001)(6116002)(61506002)(81166006)(33646002)(189998001)(305945005)(575784001)(86362001)(54356999)(8676002)(2201001)(83506001)(50986999)(7736002)(6666003)(23676002)(55016002)(4001350100001)(2906002)(6506006)(53936002)(103116003)(42186005)(38730400002)(66066001)(9686003)(25786009)(50466002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0802MB2287;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDJNQjIyODc7MjM6VXJRem9UM2MyQjQvb0EvSmFpbENiWUFi?= =?utf-8?B?V2pqa0FGK3NWMUxPOGlyYnhwdGZRZDNFckZ3UDV0aGNBVDZjanZYaU5kbmtn?= =?utf-8?B?Zm01UzlEa2wxTTFZY1dkNzhJME81MzJOd2hpUDRrNHRobVgyaGFTL3pFT0p0?= =?utf-8?B?TGxiVFVlYVZtdEVoOG9KZHBLUjRLbWFNcGhOWjVKcEM5Y0ZHZDJBdkpsclpZ?= =?utf-8?B?MDB1R0lUL3dZVE0vOEN6M3plaHgyek84UHNVdjFVZG43MW54czBlNzVEMzJM?= =?utf-8?B?QnNGQUhpaU5kNXdwZWV6L3FNZkxJcXREakVNQ1FlTm1QYkE4ZDFuL2FUUkVB?= =?utf-8?B?Mm9LUXVFL1ZDcHFKMjlrSzNUc242Z0x4N0l2NVcxOGlPalY2djFCVC9ZaURF?= =?utf-8?B?eHloZzcrY0xxVlBJSWJ0T3A3WVJNd0pJekd6NDAwa1hkdEdtcEZQV0FPWGNP?= =?utf-8?B?SkxoVVVCYzVuRjNGa0dzYThrb3RzUTlsd1ozVXdkTk01L1RrT1piQXJ2VC9m?= =?utf-8?B?OUdrNGUrcDhXSldkNmlsdnZTWTRhMHFNU2JFTzVWM2NEeGcxSE1pMzN1MkdR?= =?utf-8?B?SHdQcGx4QUJaWEx4eHlWYVdUUzBtSFBJU01nT1YrZ0tpaWhnMUVMWVpjR3A3?= =?utf-8?B?REMzYjdRTHdEa3Rpei92dEpvUkZGSHVQM0xyMnRXUGlhWHc2MWpxQ1RDNEZz?= =?utf-8?B?OXFEaHZDUGkwU3U2L1ZkTlFPWTZMMFl1d3QwekNTeXZyTDhNZ2JuYTVrTTYy?= =?utf-8?B?c3NwZ3g1Zmx2Z2lxbjQ5TWRjaDludkhreStZOWZTOFdKZEE1YUxSaklITmF2?= =?utf-8?B?MG1qTk5LMzlUL2xVSTVJMTNsc09FODVIeWtLWitlaTJBaEZQbnN6d1JpRnFE?= =?utf-8?B?ZHpBRXErb3JBelJqY01TU3hMVHBMVkpqQlFsSlc4TnIzOWM1WDdNdlg2d2dj?= =?utf-8?B?MGppRlZUQ3d6blJYRE9vR0ZjU2ZJN3FZM3UvZGZEMWEwbXVyYnAyb1VnaTFV?= =?utf-8?B?Y3pVZEd1UktPWk0weHhFcHVrMlFjTGNvYUM5Qk95SGNBWWZZV0pTUWwzU2Zv?= =?utf-8?B?KzJvZGNzYmFYRmk3M1hrYjdYdC9mci9iUkNVMVFia0FWdjZHYmNNd0Q1SU9D?= =?utf-8?B?SlptVk5GWjdyV01nODZpeUNhcDZqUlhjcEpzOHVLdWdMMkVrOTZRS2VvdHJm?= =?utf-8?B?WDMzV2VoY1Q4RktBeGJDZ3pmWVczSktIb0h4TUlOdlZzS1NwTkpwcGprZlZ0?= =?utf-8?B?NnNmMHdYYlVVL3VTT1EzOFl5SDcvd1orR3RDSk5UZ0p0L2hnVW9UejMreGJR?= =?utf-8?B?NldTZE5WQm5DZ2dIdz09?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2287;6:Z36kHhRI7iXjtiSTqdAnd+uUEXJUU6Vfu4QgPL+YkpdyGmJILosFH+8Hf8/zWQ9k/Jxz6lwZf8mAGQtOChAxklXJx7jRO132nPxXqa6m8QcrprlXMRX4KhZmvPNo0P57Nw/ARS4bjIE3WGhQjSHZFs6MGvTH57PijAv+wFER6PMM8Bn4SkgBRZA1pDgRBL+YyTsyIvVEuK1UtAXVGuCLEXKa25Xd5HvfaUDYNuj4V8QkBuEI07KxopgVURdnhU9UXT2AmuIQ3dK2ytv3gobCpFH/fopZYkrz51Z2N7CN6rcNyTZor1hxRTGm9WwCd/W+Jgv3ua5m/thFvfEsn53UURz2beBqDyAbEUHa8E/UjOhgvM+isL8J3WNFuXJ//LbkJ39tZUfRgCmWvMre++mHenhg0kuNmpHusAfCqeM4DMCNF1WYuhsNN5f6Zh1jlMQYmbmiUmiGkhpD1+hbq/lSqg==;5:PtRc8p7LoXz5qhveCvpHBdRWIIYOf66Ht7ytqRj6ujzjCNbM44NWpP+3I/6h/xcx2IEMAL025n71ZITFuB3zlxAHr10bPsyZlpnDYehl1Tc0pDAyUTzlQgoCsKNepR3ztTMipPe+sX6HVln/ZL6IQw==;24:VZA2R5ZF9PZgIGTXHFxg9Um9VILBwORqB6DoCElvNYuCrC70Bc2FmSWk6KhjMUUAujrpKGPsXYunyNI4W7j0TC1TjiOvHYM5BkwQ0YND5Ms= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2287;7:kFP6EWzHs7W9V+m/5xMKskYyGcNDN0O1jYiOdLXf9FFhjpNZkIWaJ32S5fuyXwEW6zyKgP8vi7pd4PIQINX7HpKDqNFgz2bClOKcU6UHGFLSS+abMh63wvAU5QiTrwCF7xp6YD6AW42OYMp3HI6i6DzGGLtQeBFL/+KsRt1MUM/juFrqmXRNwxzfcstk4RlBgQDRpuwWPmm8bd9DhrimEUss7dUZbfGeVeGjKX43AfUB8PQRI9IGl8l14ytsOA4exqc0kZ6F9oCH2An+Q2sO1wiP/qfSAm5SZs9HhDcTFz/TZXo+5nHcmKu/t2B4YDDMWJWAVUls/SjmN1yXZ6o6ZA==;20:+OyOZj6L63fURvx9vXTmJuG9Fp0twHSCLh5UD09UMYWvP686dUjIDY11JnBrm7GMF5ZOHE9SkEFVVsjWfllbSLXsG623nFx3qIUQF+z5Jjzr9RAu2K0yv2eLPc9fBzJKo8oO8Re7I3s2TQb+6TTig3cmaBQA9lXH+fAmwFCWKaE= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2017 15:17:20.5961 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2287 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org alloc_pidmap() advances pid_namespace::last_pid. When first pid allocation fails, then next created process will have pid 2 and pid_ns_prepare_proc() won't be called. So, pid_namespace::proc_mnt will never be initialized (not to mention that there won't be a child reaper). I saw crash stack of such case on kernel 3.10: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] proc_flush_task+0x8f/0x1b0 Call Trace: [] release_task+0x3f/0x490 [] ? thread_group_cputime_adjusted+0x50/0x70 [] wait_consider_task.part.10+0x7ff/0xb00 [] do_wait+0x11f/0x280 [] SyS_wait4+0x7d/0x110 We may fix this by restore of last_pid in 0 or by prohibiting of futher allocations. Since there was a similar issue in commit 314a8ad0f18a by Oleg Nesterov : "pidns: fix free_pid() to handle the first fork failure". and it was fixed via prohibiting allocation, let's follow this way, and do the same. Signed-off-by: Kirill Tkhai Acked-by: Cyrill Gorcunov --- kernel/pid.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/pid.c b/kernel/pid.c index 0143ac0ddceb..fd1cde1e4576 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -321,8 +321,10 @@ struct pid *alloc_pid(struct pid_namespace *ns) } if (unlikely(is_child_reaper(pid))) { - if (pid_ns_prepare_proc(ns)) + if (pid_ns_prepare_proc(ns)) { + disable_pid_allocation(ns); goto out_free; + } } get_pid_ns(ns);