Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp1254496imj; Thu, 7 Feb 2019 21:15:55 -0800 (PST) X-Google-Smtp-Source: AHgI3IbiR7rC7RVn8a3IwaPA9bcd4vJeVtQYLxR7e4TGuKcoHFw5uD9AvHii9/F0F1cexvmwDlj3 X-Received: by 2002:a62:de06:: with SMTP id h6mr20751620pfg.158.1549602955909; Thu, 07 Feb 2019 21:15:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549602955; cv=none; d=google.com; s=arc-20160816; b=lIZgvqfBX8NIfawt8Fdn0RzWR5oPDryQHxHAuv8wstZ1l20lCKazNzi9TGARS9D9mq MMJWQ9nGTBMLd+ptYFba7yDswk7DtJZ6UXmF0Wkbji8NqPLl5t6tXLo1LAYttsXEUmak O9u6BBBh+lQjkeo4n2ikA7eso3k6/W6Nhb2LtOJoitCqL7m3VwYDD3eZq7jsqF+C9t75 PxJ8iYE/aB4QsXG5P9L24rSLf4dX3myjrKHtazR7fa3iRy6cbLKZXXvcV6maFfRcWa1V 7EWbRN3i1TccLYSVo8Ln3XOClY97tYRsmIxVYATpRKEiS1k5s4xTZVWJrLUXmvnNnD9I jCSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:mime-version:user-agent :message-id:in-reply-to:date:references:cc:to:from; bh=ZBUHJuP/FURsn7q1sBvICfyMEVId2pwx/y7kJlj0gI8=; b=u2K67gRMum2fuMa4Jam74c0lLSOTZ2SCo90wwMRP1X4YlEdcAtsRNIftxxCopgqVgX lZlZKuJtPmmhiL1oeiyvLmZIOtkQfliBx9/REilAvEHTcTcdoUIftDu5uXS6cIJgUUhg 97lbxHuIjNwEE3Va+WrzUEWyeJjSIi0EEVHBtXd/FWWjbfFaixCvBgAUHQCJu6MRbbVt Sauy/PursTGJDXEkDiJQ5ki/8EPZ3/eVE3ZcrgtXizeJt97wgRFLKO3sF95kT6Pwy8jB wObycWYtUtO4HjRBVZMpCTzAWgr76YBrU9oaTeuEdhBPi3JfuznJH3Q7oq7sg2kYiOll DfNw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xmission.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l22si1208147pfg.275.2019.02.07.21.15.40; Thu, 07 Feb 2019 21:15:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xmission.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726915AbfBHFON (ORCPT + 99 others); Fri, 8 Feb 2019 00:14:13 -0500 Received: from out03.mta.xmission.com ([166.70.13.233]:44628 "EHLO out03.mta.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725901AbfBHFOM (ORCPT ); Fri, 8 Feb 2019 00:14:12 -0500 Received: from in02.mta.xmission.com ([166.70.13.52]) by out03.mta.xmission.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.87) (envelope-from ) id 1gryUM-0004CL-RT; Thu, 07 Feb 2019 22:14:10 -0700 Received: from ip68-227-174-240.om.om.cox.net ([68.227.174.240] helo=x220.xmission.com) by in02.mta.xmission.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.87) (envelope-from ) id 1gryUL-0003mu-3G; Thu, 07 Feb 2019 22:14:10 -0700 From: ebiederm@xmission.com (Eric W. Biederman) To: Ivan Delalande Cc: Andrew Morton , Al Viro , Dmitry Safonov <0x7f454c46@gmail.com>, Oleg Nesterov , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Lutomirski References: <20190205025308.GA24455@visor> <20190205131119.3e388a0a1a69c0a041ed87ef@linux-foundation.org> <20190206031029.GB9368@visor> Date: Thu, 07 Feb 2019 23:13:59 -0600 In-Reply-To: <20190206031029.GB9368@visor> (Ivan Delalande's message of "Tue, 5 Feb 2019 19:10:29 -0800") Message-ID: <87pns2q2ug.fsf@xmission.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1gryUL-0003mu-3G;;;mid=<87pns2q2ug.fsf@xmission.com>;;;hst=in02.mta.xmission.com;;;ip=68.227.174.240;;;frm=ebiederm@xmission.com;;;spf=neutral X-XM-AID: U2FsdGVkX1/gKch5gprulFjcTtJ4s0vO7tHFCT1bvNo= X-SA-Exim-Connect-IP: 68.227.174.240 X-SA-Exim-Mail-From: ebiederm@xmission.com X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on sa07.xmission.com X-Spam-Level: X-Spam-Status: No, score=0.5 required=8.0 tests=ALL_TRUSTED,BAYES_50, DCC_CHECK_NEGATIVE,T_TM2_M_HEADER_IN_MSG,T_TooManySym_01,XMSubLong autolearn=disabled version=3.4.2 X-Spam-Report: * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP * 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% * [score: 0.4994] * 0.7 XMSubLong Long Subject * 0.0 T_TM2_M_HEADER_IN_MSG BODY: No description available. * -0.0 DCC_CHECK_NEGATIVE Not listed in DCC * [sa07 1397; Body=1 Fuz1=1 Fuz2=1] * 0.0 T_TooManySym_01 4+ unique symbols in subject X-Spam-DCC: XMission; sa07 1397; Body=1 Fuz1=1 Fuz2=1 X-Spam-Combo: ;Ivan Delalande X-Spam-Relay-Country: X-Spam-Timing: total 1398 ms - load_scoreonly_sql: 0.06 (0.0%), signal_user_changed: 3.3 (0.2%), b_tie_ro: 2.2 (0.2%), parse: 0.86 (0.1%), extract_message_metadata: 11 (0.8%), get_uri_detail_list: 1.33 (0.1%), tests_pri_-1000: 5 (0.4%), tests_pri_-950: 1.34 (0.1%), tests_pri_-900: 1.13 (0.1%), tests_pri_-90: 22 (1.6%), check_bayes: 20 (1.5%), b_tokenize: 7 (0.5%), b_tok_get_all: 6 (0.4%), b_comp_prob: 2.4 (0.2%), b_tok_touch_all: 3.1 (0.2%), b_finish: 0.76 (0.1%), tests_pri_0: 1292 (92.4%), check_dkim_signature: 0.60 (0.0%), check_dkim_adsp: 3.0 (0.2%), poll_dns_idle: 22 (1.6%), tests_pri_10: 10 (0.7%), tests_pri_500: 47 (3.4%), rewrite_mail: 0.00 (0.0%) Subject: Re: [PATCH v2] exec: don't force_sigsegv processes with a pending fatal signal X-Spam-Flag: No X-SA-Exim-Version: 4.2.1 (built Thu, 05 May 2016 13:38:54 -0600) X-SA-Exim-Scanned: Yes (on in02.mta.xmission.com) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ivan Delalande writes: > On Tue, Feb 05, 2019 at 01:11:19PM -0800, Andrew Morton wrote: >> On Mon, 4 Feb 2019 18:53:08 -0800 Ivan Delalande wrote: >> > --- a/fs/exec.c >> > +++ b/fs/exec.c >> > @@ -1660,7 +1660,12 @@ int search_binary_handler(struct linux_binprm *bprm) >> > if (retval < 0 && !bprm->mm) { >> > /* we got to flush_old_exec() and failed after it */ >> > read_unlock(&binfmt_lock); >> > - force_sigsegv(SIGSEGV, current); >> > + if (!fatal_signal_pending(current)) { >> > + if (print_fatal_signals) >> > + pr_info("load_binary() failed: %d\n", >> > + retval); >> >> Should we be using print_fatal_signal() here? > > I don't think so, the force_sigsegv() already ensures it will be called > from get_signal() when the signal is handled, and so the process > information will be printed then. > >> > + force_sigsegv(SIGSEGV, current); >> > + } >> > return retval; >> > } >> > if (retval != -ENOEXEC || !bprm->file) { > I just noticed this. From my patch queue that I intend to send to Linus tomorrow. I think this change fixes your issue of getting the SIGSEGV instead of the already pending fatal signal. So I think this fixes your issue without any other code changes. Ivan can you verify that the patch below is enough? diff --git a/kernel/signal.c b/kernel/signal.c index 9ca8e5278c8e..5424cb0006bc 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2393,6 +2393,11 @@ bool get_signal(struct ksignal *ksig) goto relock; } + /* Has this task already been marked for death? */ + ksig->info.si_signo = signr = SIGKILL; + if (signal_group_exit(signal)) + goto fatal; + for (;;) { struct k_sigaction *ka; @@ -2488,6 +2493,7 @@ bool get_signal(struct ksignal *ksig) continue; } + fatal: spin_unlock_irq(&sighand->siglock);