Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14090

Re: [PATCH] A terminating signal has to complete a bash process

Path csiph.com!weretis.net!feeder6.news.weretis.net!nntp.club.cc.cmu.edu!micro-heart-of-gold.mit.edu!bloom-beacon.mit.edu!bloom-beacon.mit.edu!171.64.64.130.MISMATCH!usenet.stanford.edu!not-for-mail
From Andrei Vagin <avagin@virtuozzo.com>
Newsgroups gnu.bash.bug
Subject Re: [PATCH] A terminating signal has to complete a bash process
Date Fri, 4 May 2018 10:13:11 -0700
Lines 100
Approved bug-bash@gnu.org
Message-ID <mailman.13403.1525454011.27995.bug-bash@gnu.org> (permalink)
References <20180430220520.32312-1-avagin@openvz.org> <e131b7b7-bd73-85b0-c5e4-88b66cab861a@case.edu> <20180501164422.GA7043@outlook.office365.com> <759a8efe-1c0a-2966-a2ae-59fc734fdad3@case.edu> <20180501235553.GA4218@outlook.office365.com> <6eb002a4-5cbc-1955-e3bd-f1eed5c2fd20@case.edu>
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain; charset=koi8-r
X-Trace usenet.stanford.edu 1525454012 11672 208.118.235.17 (4 May 2018 17:13:32 GMT)
X-Complaints-To action@cs.stanford.edu
Cc Andrei Vagin <avagin@openvz.org>, bug-bash@gnu.org
To Chet Ramey <chet.ramey@case.edu>
Envelope-to bug-bash@gnu.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=zjV6KJj9KKYSFsOvn+eVTw4QpYRRWnbvOXc9221rnYk=; b=V+9qZfHLCRpx7MF5zREVn1vXQKfk4/SpvXcEE/8IsDqFwo8BhlF3IBMjlF0KRSipu01+DP7f4jZYaCRCYmV8JxEVHqOXj2CZR5M9ppfdynUAflkqPDOGkbAJ18apbUZp/xu/ycs18lyM93fZlUZHDw4OkWGX/kjJfVApj1XF0sU=
Authentication-Results spf=none (sender IP is ) smtp.mailfrom=avagin@virtuozzo.com;
Content-Disposition inline
In-Reply-To <6eb002a4-5cbc-1955-e3bd-f1eed5c2fd20@case.edu>
User-Agent Mutt/1.9.3 (2018-01-21)
X-Originating-IP [4.16.175.162]
X-ClientProxiedBy DM5PR13CA0056.namprd13.prod.outlook.com (2603:10b6:3:117::18) To AM6PR08MB3256.eurprd08.prod.outlook.com (2603:10a6:209:47::21)
X-MS-PublicTrafficType Email
X-Microsoft-Antispam UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB3256;
X-Microsoft-Exchange-Diagnostics 1; AM6PR08MB3256; 3:orHm/+Vpv2N9LzgzAHepU3R6crW/0F8B1oBr7YzHz1jS1+8LAKgXtvtS81LqO9C1xndenHwdGRxhBUY9zS9swALf13tc9GebJDE2MbKi2bSjPY8fWHzBFA5956vHhItDgMMpd/OFRCZeeF3MAyFT6ps+YKGHcJXbBdo7vt+ccP+s7UxlejC9LBKX8+bVlUHhYEXJKeJgDc2imI7Da+Ti5JEcisE6HcXB96B7S5xb/s0eyi32n1JqE06M8L7euTzS; 25:FSq9kkNhVDrcaazv0nLiDWNUy7D6cXXWLk6w7L3U09p7xzwkUrxOvftApeA6MHQLj1jU07VcPofZBp75YrTnqxhcy6tx4gtf2G2uK9/AnRm6ghBJILjVbSTRP2OdSvFjgXAmlwXH88MGoXiydsc12oqS9yzaSHaero6p2UsRL4VOgBz8NymLK+LymSVecLg+p5uZetUvfJcvW+fKPGcB3dGTOQq+qlcqwGqiSoR3wiY2huxhv/0af8JctTtSMyvJGlGDnb1hXEKP4AkR0VGgFoqlwiHpjxlwFLALNiN7tFMs/2rs8qHDdyBzEDW/dheVQOVp0FNQE8M+5ieBXcTJOg==; 31:J2x+vrjtcvCNnOe+s63Dbc/ft7IO7L646vw6z2H1LgnzNLB8ekZpWd/vF9rMzeSONih23dHKnmFtd7jelvtO0DXrdbeV3NovrVQEvypB21gDcRxRUFAe6pxj/lkBnLwFyHp2OIb4/korhNm4knX8o4FViyVYVL8V4aDIM5T+oPiWE+VTGle0+XNNPCijiUfU8igzyb9KQ51uyWdlPwLHGqlXjhLbjD5raD6uTS0zSwI=
X-MS-TrafficTypeDiagnostic AM6PR08MB3256:
X-Microsoft-Exchange-Diagnostics 1; AM6PR08MB3256; 20:JsC6csCmxzT0hFHHGnWq9YPxQeyd39TIhKHUNwM9uRXFWkWjaeVWBAiSmkkhGJsLI0233hfNOf096lxsRcfDhfbRbNvkHQan6xF4RG/48X7P8uIzzdy4eLisQ9rBM1smcTPH4sH/dZZ/fGrKzhTxAgQjt8gBwjzYBASUJGJTc1gnKMHW3qJrGefm3isj4hh9T8Fz5OiAr2Yb302Z2RuiOYSx/KoadpqZR/1biFj6vXmNqSTq80Xxqzvidzjrib6xiY5/vahvEYEAjVoxlp5rnsNQ5kJpe5MwwQSIrg3QntKxqQ3I5uX/GpTQy9boY04PBndI5JKWnhu+GhK2zHlXS0u53kuCuLzSwjgRZEcBZAyIJKOsFAz4Z2EgzECmfTUtgLlN9TEyXm7Qiu49ajpgNadUUW+WlSiu9TykG8Hz2+oo1cnVmaBnH3SmWUQYfeTT6yRUm/2yGzakNkA8qtzSqAQEZWelWKUABUJfCQ6A0ALqhtmhFpWRAkApdUMwGVZv; 4:i5I+cLliecOHSeN7x6J6aDsr6VWlV0w+eW0ztDBuGs/Jjl5mJOne7IqUmt9MELok2RgZSOeoSQt/6lN0kMuER5+eXjneQ5gutjZx/esGxYHII3DM5HCVzr0bf2QbR3h8CkKyg1euM8cHkSh8EPDc1aAo9iSuHQOMUItvSWlUiBOzuIdoSBrhwjmCbOICDlgTFg3SoHf1vuCms994V4xlSQr/8ef0+Dba0r8e1ADZvJf1PaCb0kr6ki2lmSIRUIH6QasmJ3P7Put/ChoK99xrqg==
X-Microsoft-Antispam-PRVS <AM6PR08MB32564141719A30F57BD3C4B3CF860@AM6PR08MB3256.eurprd08.prod.outlook.com>
X-Exchange-Antispam-Report-Test UriScan:;
X-Exchange-Antispam-Report-CFA-Test BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:AM6PR08MB3256; BCL:0; PCL:0; RULEID:; SRVR:AM6PR08MB3256;
X-Forefront-PRVS 06628F7CA4
X-Forefront-Antispam-Report SFV:NSPM; SFS:(10019020)(376002)(346002)(366004)(39850400004)(39380400002)(396003)(199004)(189003)(51914003)(47776003)(386003)(26005)(69596002)(37156001)(59450400001)(105586002)(93886005)(4326008)(966005)(11346002)(956004)(52116002)(6246003)(2171002)(50466002)(7696005)(53936002)(478600001)(76176011)(446003)(476003)(16526019)(316002)(16586007)(53546011)(58126008)(66066001)(186003)(9686003)(2906002)(55016002)(6116002)(68736007)(1076002)(6666003)(25786009)(6916009)(86362001)(6506007)(106356001)(23686003)(486006)(305945005)(3846002)(7736002)(8936002)(97736004)(5660300001)(81156014)(81166006)(53416004)(6306002)(8676002)(229853002)(33656002)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM6PR08MB3256; H:outlook.office365.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
Received-SPF None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts)
X-Microsoft-Exchange-Diagnostics 1; AM6PR08MB3256; 23:t+q0GDAf2+m/0lghLVLcfDWLNTQWmFYT571QcZXp4UjD+m2jK7tH64+nxzCzLjMXJtI7Ktt9RpzdUc5wE9cIv1Z56bhcEja1xd9oph/MMGeuKYvu5flBLtrSmVgxdb8uyP5SIaJRab1T1IJSDBVHCZwWBnml4Ka4kHG7YlB8BPeHJsZlldWs2clkzkFAU7TmJgbVUlI9/4g2JOl1EmEiFpRgEIkOCXMOoBJJPDLabPkkznRhV1CND+r0v6GIxWosCdnA3uqzAcG/dKxX5jRCFRevg8ymELLQAv1g/3685ikx9rtwJPCpQep1qr4X6ogpisden7RD6ukByoAqfNUjDGZNYDFeS84ZHhRVsYrqpPPBh4sWWO4a7dI8EW/9rJkKCHK2b/nr7fXrh3dCAk8OciHcx1njUzthc1fSa+rFDPtRmSvaNkwA/8QuylMl4T1Q0SqYG/inEsacbY/vh3DsdDRGDQO6qzGlzpe3hFJo6x2GbxEPBWwixvFfG1rlqPEIWaoI1+6HykyF9pTadMoceQjMlVM5qPVLO7rhGtr5F6JB8zUm63hVEAfIRK7/4iDkh3PRUe0nfMBN/qNCq9gVREx6wh7HRcfFLO8VEX8M2243GOXOK7EV58Z1tKarBxn7QfScZ5gAKPZ/E/4TTxPHe9XVhA6lPh+Mid9/Pxuqqzr9C2h/eYqzJnH2AW0tvivIeOnokyKWnbVmgnSORAhchX1ZesxRHvDdT/t2kEWny9wXKLaXQT6l9gdtuLHD/bPqGRtfaQC//1mkTuKVAvY43ufKzdM7Xr9osLT2Z5Us0aOaZKfw4j2seCSnQI17Ak+nkRzw8JOa9lTJnWKNPvexTG7+18fyFE2prsQqEIRFr54EfmxMaipWJK3K4gpRRPsJEllqYwyqW1W+Wq1R4uCsvU1OUFrXeupj6kp2GF+R4htBa2bf2vFVSXzHivYdM2PbCGG8rMXmqeDoLyNM/rsD726u7g5khCDyOPOXvIC6kSVjWmTu7x536+444PND4XL2TG+r1TDYUysQEkHhMRgZ+jLXA100D3zphn/3h3cMy7ESNxpvo32s/W6GMdYZ0xdeMlgpnGq8trW3YHTBmRNGVo0zYTm/amIbHC3xihQLXjgu2JW0u+eyHbbypZErEsyCNSmGlVgDre6gAff7r9RcxiO1uuv9AYsDdfo7q1tSVtayazsRQJHJJmqRrp7RIQxMuIwVTIBBev/e6kuXUicVxqTzqlIYP3VDPWkI/AoTHasv0TRq6VmuwvPlf86Bhh6E3q5R/a6TVYfmpg1s6hyAl0uyAY1dAm5dCQwzDVkt26oq7AARWuQ7r6cq2StaY8hMffxv1+b/cvls5L7kKv11a67l7JoO8zSfnAI9wacjFK8kBXkVvKrk4CMKAR0WoJ2yO4HQvFOOKf/RdlfLWPKaT4VlR8butM7wl8LtQf+QQXEQcZOtRhfC/Afd98oo5b/O
X-Microsoft-Antispam-Message-Info AHXSfP/o0wbdCT4GTh2qS3sGUr9RqjySqpEiKzvrrQBu82lmjqzu9zMpMeDwnSZQhd/tAtPoWTqg5JHwXgbUUWmCQ5m5EUfgLrnsd5q2gtTV5tRQdMqGi5exCm2hsbgkwkHaxruFe6HyYAbL6NCWYvhSXmqrfhLJI7wFeumMIJRWYlDrxo3pOtPQmirOeVuQ
X-Microsoft-Exchange-Diagnostics 1; AM6PR08MB3256; 6:9+osc+4S0mBWQQFdZ2/nt52m5losuP97ZDav6dDHswvtB4RbblOiK4bMFHfgW+151Ni+pawQK9ycrfPfwdz/8EGpQbZ6/pvfrshVWBaS0iyC/QVcn9b7ieIhajph04c144nb8OnjXSf40pmb/eSJ+YKdKdC59SUJSU3ikmaWpfCKsmjwj0fivrnrgdq97jamk2J5TpnELLIb7skYzHDWbkDAdbBhfzbehB18h6/9FQJhjH3bgzxkmr//bbBSpbMAIiqnSQY5agIAE7djeVXU7NXZSZuGlxFZecbfdQG4C5TD5YXrKBbgBaCn8Y9ohu3G7fmCcMmN73IuI4hlA79ECfM0vnYLdcCe6VN+4FQw/2uTJfWy8OgXrlOy8wo8ugs2w0hetYRsXctr0RnMfvyIYIkkixet7KjfD9nXUa7HQScgi2ug43cIx9FxcldmQ0957vv1A/VOy/O05466RarntA==; 5:2phCl/9ZFCYp9lVF52IOEsJV9A6mOm5rve1DfNCQuwiJZbCon5/0TDfY+EKjfIezM9hbED8mLMKQmQVg4wPr9K1x+aHSZFLtmlO8qUPV0MdQHO7jD8sccdVmguokO86hikPjiSUKJ+I5aFk7Kc592S1tuL/Pi+jX3jEb9xhKhR4=; 24:G+G7org3dT8P9vmwjGTr94YbyvEtBG2oRpJB6rqU3WfShouoD4n9Wp6OACQdYGm771q+b1nhrPGlWuz5iasV9a+DKBq9Ua+SSggu8zSXw3g=
SpamDiagnosticOutput 1:99
SpamDiagnosticMetadata NSPM
X-Microsoft-Exchange-Diagnostics 1; AM6PR08MB3256; 7:wqzddx2qsJfvPirZVm7MsAn0BuEz/n0Gqr+n9ejFQF7UCvI690F9jKz1wtqTew/RTY35aI3SC/H6cAkzppIHSizStXpLSNb4MAn5vhF6BIzkjUWLw1Ggz4WaB2ZFwPFBrs/DGuyzddtfMY5sCjMktaEJPIYrKCDFqeNJYd03Nj9sP4M/e31ofTjnSz33+RoCzFYtaz1ex/AtEVZMQUCJqH8tboJpVGUd4wuuRwVFiTgkq+YDtnhZTs1OyJcXZfZX; 20:MZk9E0q5Mo+2Ud9jcKEK6jW/QYUT+tfEVFkf5EY4j7VcFzOx1+eCSLs5ImCa+1vHT7dZUGfZm5Eq6ENhyj4tMo1yHKyxptbzxYwrQbZkK71mKhO7GI0amAQK0N5xKIgIglebMahNVCM/40YhTDt5xQ9rg3itOQXtusig3dsUHNw=
X-MS-Office365-Filtering-Correlation-Id c4925983-1efc-4e71-e5bf-08d5b1e256a6
X-OriginatorOrg virtuozzo.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime 04 May 2018 17:13:20.8703 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id c4925983-1efc-4e71-e5bf-08d5b1e256a6
X-MS-Exchange-CrossTenant-FromEntityHeader Hosted
X-MS-Exchange-CrossTenant-Id 0bc7f26d-0264-416e-a6fc-8352af79c58f
X-MS-Exchange-Transport-CrossTenantHeadersStamped AM6PR08MB3256
X-detected-operating-system by eggs.gnu.org: Windows 7 or 8 [fuzzy]
X-Received-From 104.47.2.127
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-bash/>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.bash.bug:14090

Show key headers only | View raw


On Thu, May 03, 2018 at 04:29:13PM -0400, Chet Ramey wrote:
> On 5/1/18 7:55 PM, Andrei Vagin wrote:
> 
> >> If it's not obvious, I'm trying to determine whether making this change
> >> will add any more value than simply exiting (perhaps with a particular
> >> exit status).
> > 
> > It will add more value. Without this changes, we will not know whether a
> > bach process crashed or exited. If it will not generate a core dump after
> > a crash, the tools like abrtd, coredumpd, etc will not detect this crash
> > and will not report about this abnormal behaviour.
> 
> OK, we'll try it. I'll be interested to see if any core dumps created by
> causing a SIGSEGV will overwrite any stack information from the `real'
> fatal signal.

We can easy try to check that a result core dump is functional. I did
the next experiment:

1. Add a bug in a code which handles printf

diff --git a/builtins/printf.def b/builtins/printf.def
index d39a6d3f..5cef6118 100644
--- a/builtins/printf.def
+++ b/builtins/printf.def
@@ -250,6 +250,7 @@ printf_builtin (list)
 
   vflag = 0;
 
+  *((long *) 0) = 5; \
   reset_internal_getopt ();
   while ((ch = internal_getopt (list, "v:")) != -1)
     {

Now when printf is called from a script, a process will be killed by
SEGV

2. Prepare a test enviroment
$ echo /tmp/core > /proc/sys/kernel/core_pattern
$ ulimit -c unlimited

$ cat init.sh 
#!/bin/bash

function finish {
  echo Exit trap
}
trap finish EXIT

printf hello

3. Run a test script in a new pid namespace

$ unshare -pfUr ./bash init.sh
Exit trap
Segmentation fault (core dumped)

4. Let's look what we can get from a core dump file

$ gdb -c /tmp/core.1 ./bash
(gdb) bt
#0  termsig_handler (sig=11) at sig.c:628
#1  0x0000000000462c01 in termsig_handler (sig=<optimized out>) at sig.c:484
#2  termsig_sighandler (sig=<optimized out>) at sig.c:540
#3  <signal handler called>
#4  printf_builtin (list=0xd9aa08) at ./printf.def:253
#5  0x000000000041fa65 in execute_builtin (builtin=builtin@entry=0x48d880 <printf_builtin>, flags=flags@entry=0, subshell=subshell@entry=0, words=<optimized out>) at execute_cmd.c:4535
#6  0x0000000000420842 in execute_builtin_or_function (flags=<optimized out>, fds_to_close=0xd9be08, redirects=<optimized out>, var=0x0, builtin=0x48d880 <printf_builtin>, words=0xd9aa28)
    at execute_cmd.c:5028
#7  execute_simple_command (simple_command=<optimized out>, pipe_in=<optimized out>, pipe_in@entry=-1, pipe_out=<optimized out>, pipe_out@entry=-1, async=async@entry=0, 
    fds_to_close=fds_to_close@entry=0xd9be08) at execute_cmd.c:4330
#8  0x0000000000438b7c in execute_command_internal (command=command@entry=0xda4108, asynchronous=asynchronous@entry=0, pipe_in=pipe_in@entry=-1, pipe_out=pipe_out@entry=-1, 
    fds_to_close=fds_to_close@entry=0xd9be08) at execute_cmd.c:807
#9  0x000000000043a4ae in execute_command (command=0xda4108) at execute_cmd.c:405
#10 0x00000000004249ec in reader_loop () at eval.c:180
#11 0x00000000004235ba in main (argc=2, argv=0x7ffe30cdfce8, env=0x7ffe30cdfd00) at shell.c:792
(gdb) frame 0
#0  termsig_handler (sig=11) at sig.c:628
628	    *((volatile unsigned long *) NULL) = 0xdead0000 + sig;
(gdb) p sig
$1 = 11

(gdb) frame 4
#4  printf_builtin (list=0xd9aa08) at ./printf.def:253
253	*((long *) 0) = 5; \

In this case, the core dump file isn't corrupted, and it gives us all what we
need to investigate this bug.

Thanks,
Andrei

> 
> Thanks for the patch.
> 
> -- 
> ``The lyf so short, the craft so long to lerne.'' - Chaucer
> 		 ``Ars longa, vita brevis'' - Hippocrates
> Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: [PATCH] A terminating signal has to complete a bash process Andrei Vagin <avagin@virtuozzo.com> - 2018-05-04 10:13 -0700

csiph-web