From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Wed, 05 Jan 2022 14:56:38 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1n56mM-00Boqg-10 for lore@lore.pengutronix.de; Wed, 05 Jan 2022 14:56:38 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1n56mL-0007xy-E3; Wed, 05 Jan 2022 14:56:37 +0100 Received: from mail-vi1eur05on2061.outbound.protection.outlook.com ([40.107.21.61] helo=EUR05-VI1-obe.outbound.protection.outlook.com) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n56m7-0007xp-GS for ptxdist@pengutronix.de; Wed, 05 Jan 2022 14:56:24 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dY8TYTDRbBEs8KCbdtIEgrHbO+/Gr6SdvbR/P8ptjVxBzsVVeg7bymf1reGvY2CdnPBkY8zwZ7e12TKxyYy6FgROSlkd/E/SahMhUj67Wnu3Nb5fA0Y0vm1kAOnWVf+tuiCTcPGHRb9tTlOuUCLsQorRdfp6EWDvBuvNP28RngO0lM6m8RczilyNgX2GqXKz2pM87qL3J0btcviicuJg6wbfry9AMwfgdQYoZNSASdzkcyUDkXRv1yPoxVH8cwe4ZyenSIUZiHVbx2SADRTTTR0acG8Wxhq31IGDz2yE4UGcVZrBO/Hp3T1VINvhAN1OThqanPXc/WaUBj7Ps3cNyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/dtXQRZj4J78LLPc8cRhhMvG4lwoUH+qoXVsaAyf1jc=; b=fTF09jnb9ZGSueaKVsBoQY6acyD6l9Sro+RdxqL1WSZPEUHo623KZlIyMoDJoTjc39jLDM6BwzdRPbJtqwxR7fK7wyp7xmv3Tdv7O1O4S/ksDUWMOXgAYDZphqyvSV3ioBzF3fX+j5VDfDNDYdCSrMxG8kh0k6a2imMjFUJASqgYmrYG8mSvUVosd2hZhJ+lNOHAIN1HncHai3Md1QehrmWuw/9GGLk/nRlqMDvMZYgyhaavbbBpxZAYxeyQfjpk4LECYUqESdnljKvPHu8tV+n1ZRmKEfqulcfVpDl44zNhg4shEotkhYOvCZv0uRa8S4QyoHI5h1QFX/7wSPZi/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=t2data.com; dmarc=pass action=none header.from=t2data.com; dkim=pass header.d=t2data.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=t2datacom.onmicrosoft.com; s=selector1-t2datacom-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/dtXQRZj4J78LLPc8cRhhMvG4lwoUH+qoXVsaAyf1jc=; b=D3erTlC7la9+sAmmYvfPU4wx12UyHe0+iaa+E6vnc6rgF5ErmmHvC5X6rFcHNXOISor71A1/HtOSHrWQ5qQFkUM6M0VKCe/Ki+Gi21t0NsGBMyj1E5QYHWSuGupqyf2z59Z5RCZ5QZXveklh0a/9OSQpe4jUfiJVYl8J56TEYK0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=t2data.com; Received: from DB9P251MB0618.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:334::22) by DB9P251MB0089.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:2bd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Wed, 5 Jan 2022 13:56:21 +0000 Received: from DB9P251MB0618.EURP251.PROD.OUTLOOK.COM ([fe80::91c:5b0e:d5b2:5b18]) by DB9P251MB0618.EURP251.PROD.OUTLOOK.COM ([fe80::91c:5b0e:d5b2:5b18%8]) with mapi id 15.20.4867.007; Wed, 5 Jan 2022 13:56:21 +0000 From: Christian Melki To: ptxdist@pengutronix.de Date: Wed, 5 Jan 2022 14:56:14 +0100 Message-Id: <20220105135614.4160369-1-christian.melki@t2data.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: GV3P280CA0041.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:9::19) To DB9P251MB0618.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:334::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4477ef4d-3b3b-49d4-ce45-08d9d053278d X-MS-TrafficTypeDiagnostic: DB9P251MB0089:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xjGkkyQzPJTJR8NGu4bTeumjno/sd+Qluhq4m27s+GiTf4tQiJj4lh4f2u1SFLCOO7mdtn1NV/U2QNhCpmXjAFs+oqvL9XzkMf67J+2ZjmooH8rN5BC9WXwcGmplZTNuc94AxZuQBCUmfKC97/wLeO+vxkEh7+cSPKtmRX2+9lEAjdjjtKbGF3qxY8I7f5OTLXAwmyVRLH6Qc3+6F25duhdkXgBLmyRaDR7UobLb4OBL1rmENq+iQZwWvgvesO53XQVvT6JI60EJZUAHrlggXnSywOe5dvvuvEB/WZRsEFGlwLoqPmw/s3vrSCsgDzSyQR+lNuYL2owcLnCDPPrYaxc+to5FUB2hlwl9XcZqqh/FS3+8NQ3HbmMGSRYYkLdzuTSHjzdNEX/L6y0PIWtdh8cSWPcTnGtLvpbjl+lXC7Na7/rJPXbZdNFixj3ZjHFOF0C4BuNthg0aMQqqgeq9eLded1OCIKjpDOrMWYgtRKfDJDPBO+XWL8GHf/+e0dMWWni3Mk6a0V+w3/ACovA0CBIKq6SbNtnfvDMyj4uhXZkpY9Gmtsi5rvZZ+VLxQTmGz+UECvZvTAWgo0+rAAnC66lZxAq9DIYpkXWmps96Ci539lkXQGXPHqwczEuB/Ovfj1d0cPV1C9OY42XVHQ2//uBF9xOongnMKFNJfMJdqfPU8WeHZycweQfLlynHJ7VYG25iq80hNTNv8yfWydP4VWZgCfTkif8fP8C8K66DRdtsSnbVMH1omUkh25j9gzhtUnQ/GboWTooomYNT+ex5dUuazuPNYEJK39rTGhp5FV1ipiy0R7qpuZjsSlhDRfiS X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9P251MB0618.EURP251.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(346002)(42606007)(376002)(396003)(39830400003)(366004)(136003)(1076003)(6916009)(36756003)(8676002)(6486002)(86362001)(66946007)(316002)(8936002)(508600001)(83380400001)(5660300002)(30864003)(66556008)(84970400001)(6666004)(6506007)(66476007)(44832011)(4001150100001)(186003)(2616005)(52116002)(26005)(38350700002)(6512007)(38100700002)(2906002)(21314003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4RJROAijVqcUbqz28RO0cX1SWNiTqDeyN7Z9+ofXatcH3ZIH4J5Yr0JX6/YJ?= =?us-ascii?Q?y0iEjFSX0mESOdrDYcHxm7zDjHzEmnDsowRCIIkycDQQ2O12WMT4KJYlGt/A?= =?us-ascii?Q?iEXDJ7+reXx3iBg6Mi9jSLKviLzcRre2MT8E0f1pc2RCh8xKQ90A58zmxagg?= =?us-ascii?Q?YJhnqMSB73P5CqIWeALJsDlsCS+n8MjXkQDgjBv1/m0oru4p3KKmJxq0VMHz?= =?us-ascii?Q?CA9q4FIpYGI4135KP3eVnQZxJd6dpSHnaZMMwPz9LgUmjUXM+xXVCrzSa5zy?= =?us-ascii?Q?hiDybHAYEJlPhpnPcn44s4XDnGIBY4aw+X8CrD/bih8zUjr0QlQKMLEMcdD5?= =?us-ascii?Q?+t4UfgUNj7ffZVdqEGX6DWvGSpNub7U9Y4An2Ld18ScKwoxN0P127wPWHbcl?= =?us-ascii?Q?PgD1RY9WyiBXNHrF3qZDD3cBeX2M+6sWFR+9RgH9SBdKZJGkrwgJsGN01Hvr?= =?us-ascii?Q?HdvjI2KbRPj465Af/wiivvj2jXm7a2XREJZQlnLHSlGUuJvR6gG4651dwBjF?= =?us-ascii?Q?8QgxIPGQPMJUEmSRNtfd+b3Rdi19ON6W2GbBw01vgNv+hJwjUPxGqc+jof5w?= =?us-ascii?Q?bj5Aux9Ldh9LkFmVupCTN8/dkZG9NXOWobRXvCNSBaNbMuw6DAStS4Cux2Pk?= =?us-ascii?Q?jfi/tTrFWYBjfCt4Tpha7sPgJ8cWgE83jnmUWO1af3jSUAcnxElkNv7P3+4t?= =?us-ascii?Q?ZfFmdXZZhgxHhX3KFIMqFluQjQLykMQHG3yF6ks9gxUHUntWy+GSviXkx0k7?= =?us-ascii?Q?c1L5XXWPXmvxqP6i0bciDFnnHCTMlbLoa+li8yhNsWCqylOplT1wDM1nHH0y?= =?us-ascii?Q?3XybrvjRXpS2duiEmUYoOVDUrX+IvSnw0JmMocqEKOK4510JcaflHlZiF58O?= =?us-ascii?Q?6+MIkvYnDhc7ZEVcAjap1+5NGAm0CpElXF+GcytY8swA56dn/XW9kTPh1naI?= =?us-ascii?Q?daSVGuOndIWp83IyxdNfA3hmlQ5YaH/q8ummMnlNkxIricp55lTcAsWC8jMl?= =?us-ascii?Q?yrwQxHmU+CQaehQ7N7q5hbDMRrmsvRbRE5GP34GRlZokk9KE9JyyCvr65sko?= =?us-ascii?Q?cOh5cMKPYkOll+WMPSRx0u4Bhz07Vz8Sx2ZSpWbF4aNdZa2Py2IO54/oM1d6?= =?us-ascii?Q?Moi4JY3Va0RFvhv3jXrKw2iMfFbRAMXBbZbZn0Q/DLdAeR7Z0QsBMS0w1s4c?= =?us-ascii?Q?cARmcSu4C7nQtyvy2x0wRB7L+BWNyARhJKOAMnBwVkr3pAAQ1PYJHWX7kqpL?= =?us-ascii?Q?QsDdNWLi1XklYnGZ9Cv+IwecTINCIkroPS0CZnDZyr8RRQGl5YEvKXyRPw0l?= =?us-ascii?Q?yepFJxI83dPrxtpxxKfbn7bBYrdMSJwaTvZQOEwTrDr4BCqL2h6jADuVpZy3?= =?us-ascii?Q?WQEoSpEmF0fyJ5WVq8rHSzNoCJVDPAOyl1uqgP6/Lv+0pZAeIRzDwmxZ52Mz?= =?us-ascii?Q?RUBMGylfjV3I9j4fltsAfUV/B4dSM9YTHIVIq5gKUW35gksEtweOcArkB9mI?= =?us-ascii?Q?km3HebL/x+5q/5zYbvfko7TJ0uFB8ZafcZhyQhgUUb3GuzPH2SR2IplpWlq0?= =?us-ascii?Q?d0jyvQ4F/9CIYBuyaPHqSAaVmilLMEr66rfg8mu4ptRK5DMWkXcbL1fVzGzH?= =?us-ascii?Q?/mriLv/SZ8PCv60GqobHEJpdp1BByw9v6btcoixjhTxBEkablQtWymx0nP2U?= =?us-ascii?Q?bR9oHYYx7iuQ1TL7hlDuRWag6ik=3D?= X-OriginatorOrg: t2data.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4477ef4d-3b3b-49d4-ce45-08d9d053278d X-MS-Exchange-CrossTenant-AuthSource: DB9P251MB0618.EURP251.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 13:56:21.5195 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 27928da5-aacd-4ba1-9566-c748a6863e6c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w+jAh0ycJLGnC7jFOyrAn3la6QIknOV0gw4y5G73L1fwWvB3buIOezdIeadsRUzXs2E72RUyoYd3I/qVa5OU53vZKZyOrt1jJgJ3dt3ksX0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9P251MB0089 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-1.8 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Subject: [ptxdist] [PATCH v2] bash: Version bump. 4.3.30 (+patches-33) -> 5.1.8 (patches-12). X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Upgrade bash to 5.1.8 plus patches to patchlevel 12. Roll up patches as in previous series. Fixes CVE-2019-18276 and CVE-2019-9924 with a new baseline, without patches. Fixes loads of bugs in bash. Update licence file hash, general.c changed a copyright year. Signed-off-by: Christian Melki --- .../bash-5.1.8/0001-Bash-5.1-patch-12.patch | 262 ++++++++++++++++++ patches/bash-5.1.8/series | 1 + 2 files changed, 263 insertions(+) create mode 100644 patches/bash-5.1.8/0001-Bash-5.1-patch-12.patch create mode 100644 patches/bash-5.1.8/series diff --git a/patches/bash-5.1.8/0001-Bash-5.1-patch-12.patch b/patches/bash-5.1.8/0001-Bash-5.1-patch-12.patch new file mode 100644 index 000000000..ef8b6ae7f --- /dev/null +++ b/patches/bash-5.1.8/0001-Bash-5.1-patch-12.patch @@ -0,0 +1,262 @@ +diff -urN bash-5.1.8.orig/builtins/wait.def bash-5.1.8/builtins/wait.def +--- bash-5.1.8.orig/builtins/wait.def 2021-12-21 12:57:08.083139502 +0100 ++++ bash-5.1.8/builtins/wait.def 2021-12-21 12:58:24.304849937 +0100 +@@ -111,7 +111,8 @@ + wait_builtin (list) + WORD_LIST *list; + { +- int status, code, opt, nflag, wflags; ++ int status, code, opt, nflag; ++ volatile int wflags; + char *vname; + SHELL_VAR *pidvar; + struct procstat pstat; +@@ -180,6 +181,8 @@ + last_command_exit_signal = wait_signal_received; + status = 128 + wait_signal_received; + wait_sigint_cleanup (); ++ if (wflags & JWAIT_WAITING) ++ unset_waitlist (); + WAIT_RETURN (status); + } + +diff -urN bash-5.1.8.orig/command.h bash-5.1.8/command.h +--- bash-5.1.8.orig/command.h 2021-12-21 12:57:08.099139862 +0100 ++++ bash-5.1.8/command.h 2021-12-21 12:58:27.760927380 +0100 +@@ -124,6 +124,7 @@ + #define SUBSHELL_PROCSUB 0x20 /* subshell caused by <(command) or >(command) */ + #define SUBSHELL_COPROC 0x40 /* subshell from a coproc pipeline */ + #define SUBSHELL_RESETTRAP 0x80 /* subshell needs to reset trap strings on first call to trap */ ++#define SUBSHELL_IGNTRAP 0x100 /* subshell should reset trapped signals from trap_handler */ + + /* A structure which represents a word. */ + typedef struct word_desc { +diff -urN bash-5.1.8.orig/execute_cmd.c bash-5.1.8/execute_cmd.c +--- bash-5.1.8.orig/execute_cmd.c 2021-12-21 12:57:08.091139683 +0100 ++++ bash-5.1.8/execute_cmd.c 2021-12-21 12:58:27.764927470 +0100 +@@ -1547,6 +1547,9 @@ + clear_pending_traps (); + reset_signal_handlers (); + subshell_environment |= SUBSHELL_RESETTRAP; ++ /* Note that signal handlers have been reset, so we should no longer ++ reset the handler and resend trapped signals to ourselves. */ ++ subshell_environment &= ~SUBSHELL_IGNTRAP; + + /* We are in a subshell, so forget that we are running a trap handler or + that the signal handler has changed (we haven't changed it!) */ +@@ -4320,7 +4323,8 @@ + already_forked = 1; + cmdflags |= CMD_NO_FORK; + +- subshell_environment = SUBSHELL_FORK; /* XXX */ ++ /* We redo some of what make_child() does with SUBSHELL_IGNTRAP */ ++ subshell_environment = SUBSHELL_FORK|SUBSHELL_IGNTRAP; /* XXX */ + if (pipe_in != NO_PIPE || pipe_out != NO_PIPE) + subshell_environment |= SUBSHELL_PIPE; + if (async) +@@ -4574,6 +4578,7 @@ + trap strings if we run trap to change a signal disposition. */ + reset_signal_handlers (); + subshell_environment |= SUBSHELL_RESETTRAP; ++ subshell_environment &= ~SUBSHELL_IGNTRAP; + + if (async) + { +@@ -5514,6 +5519,7 @@ + reset_terminating_signals (); /* XXX */ + /* Cancel traps, in trap.c. */ + restore_original_signals (); ++ subshell_environment &= ~SUBSHELL_IGNTRAP; + + #if defined (JOB_CONTROL) + FREE (p); +diff -urN bash-5.1.8.orig/jobs.c bash-5.1.8/jobs.c +--- bash-5.1.8.orig/jobs.c 2021-12-21 12:57:08.091139683 +0100 ++++ bash-5.1.8/jobs.c 2021-12-21 12:58:27.764927470 +0100 +@@ -2217,6 +2217,8 @@ + signals to the default state for a new process. */ + pid_t mypid; + ++ subshell_environment |= SUBSHELL_IGNTRAP; ++ + /* If this ends up being changed to modify or use `command' in the + child process, go back and change callers who free `command' in + the child process when this returns. */ +diff -urN bash-5.1.8.orig/lib/malloc/malloc.c bash-5.1.8/lib/malloc/malloc.c +--- bash-5.1.8.orig/lib/malloc/malloc.c 2021-12-21 12:57:08.095139773 +0100 ++++ bash-5.1.8/lib/malloc/malloc.c 2021-12-21 12:58:22.200802784 +0100 +@@ -1286,13 +1286,12 @@ + p = (union mhead *) ap - 1; + } + +- /* XXX - should we return 0 if ISFREE? */ +- maxbytes = binsize(p->mh_index); +- +- /* So the usable size is the maximum number of bytes in the bin less the +- malloc overhead */ +- maxbytes -= MOVERHEAD + MSLOP; +- return (maxbytes); ++ /* return 0 if ISFREE */ ++ if (p->mh_alloc == ISFREE) ++ return 0; ++ ++ /* Since we use bounds checking, the usable size is the last requested size. */ ++ return (p->mh_nbytes); + } + + #if !defined (NO_VALLOC) +diff -urN bash-5.1.8.orig/nojobs.c bash-5.1.8/nojobs.c +--- bash-5.1.8.orig/nojobs.c 2021-12-21 12:57:08.091139683 +0100 ++++ bash-5.1.8/nojobs.c 2021-12-21 12:58:27.764927470 +0100 +@@ -575,6 +575,8 @@ + last_asynchronous_pid = getpid (); + #endif + ++ subshell_environment |= SUBSHELL_IGNTRAP; ++ + default_tty_job_signals (); + } + else +diff -urN bash-5.1.8.orig/parse.y bash-5.1.8/parse.y +--- bash-5.1.8.orig/parse.y 2021-12-21 12:57:08.099139862 +0100 ++++ bash-5.1.8/parse.y 2021-12-21 12:58:26.112890455 +0100 +@@ -6493,10 +6493,8 @@ + old_expand_aliases = expand_aliases; + + push_stream (1); +-#if 0 /* TAG: bash-5.2 Alex fxmbsw7 Ratchev 11/17/2020 */ + if (ea = expanding_alias ()) + parser_save_alias (); +-#endif + last_read_token = WORD; /* WORD to allow reserved words here */ + current_command_line_count = 0; + echo_input_at_read = expand_aliases = 0; +@@ -6531,10 +6529,8 @@ + last_read_token = '\n'; + pop_stream (); + +-#if 0 /* TAG: bash-5.2 */ + if (ea) + parser_restore_alias (); +-#endif + + #if defined (HISTORY) + remember_on_history = old_remember_on_history; +diff -urN bash-5.1.8.orig/patchlevel.h bash-5.1.8/patchlevel.h +--- bash-5.1.8.orig/patchlevel.h 2021-12-21 12:57:08.075139321 +0100 ++++ bash-5.1.8/patchlevel.h 2021-12-21 12:58:27.764927470 +0100 +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 8 ++#define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +diff -urN bash-5.1.8.orig/sig.c bash-5.1.8/sig.c +--- bash-5.1.8.orig/sig.c 2021-12-21 12:57:08.071139231 +0100 ++++ bash-5.1.8/sig.c 2021-12-21 12:58:27.764927470 +0100 +@@ -55,7 +55,8 @@ + # include "bashhist.h" + #endif + +-extern void initialize_siglist (); ++extern void initialize_siglist PARAMS((void)); ++extern void set_original_signal PARAMS((int, SigHandler *)); + + #if !defined (JOB_CONTROL) + extern void initialize_job_signals PARAMS((void)); +@@ -255,6 +256,13 @@ + sigaction (XSIG (i), &act, &oact); + XHANDLER(i) = oact.sa_handler; + XSAFLAGS(i) = oact.sa_flags; ++ ++#if 0 ++ set_original_signal (XSIG(i), XHANDLER(i)); /* optimization */ ++#else ++ set_original_signal (XSIG(i), act.sa_handler); /* optimization */ ++#endif ++ + /* Don't do anything with signals that are ignored at shell entry + if the shell is not interactive. */ + /* XXX - should we do this for interactive shells, too? */ +diff -urN bash-5.1.8.orig/subst.c bash-5.1.8/subst.c +--- bash-5.1.8.orig/subst.c 2021-12-21 12:57:08.099139862 +0100 ++++ bash-5.1.8/subst.c 2021-12-21 12:58:27.764927470 +0100 +@@ -5951,6 +5951,7 @@ + free_pushed_string_input (); + /* Cancel traps, in trap.c. */ + restore_original_signals (); /* XXX - what about special builtins? bash-4.2 */ ++ subshell_environment &= ~SUBSHELL_IGNTRAP; + QUIT; /* catch any interrupts we got post-fork */ + setup_async_signals (); + #if 0 +@@ -6382,6 +6383,7 @@ + } + QUIT; /* catch any interrupts we got post-fork */ + subshell_environment |= SUBSHELL_RESETTRAP; ++ subshell_environment &= ~SUBSHELL_IGNTRAP; + } + + #if defined (JOB_CONTROL) +diff -urN bash-5.1.8.orig/trap.c bash-5.1.8/trap.c +--- bash-5.1.8.orig/trap.c 2021-12-21 12:57:08.083139502 +0100 ++++ bash-5.1.8/trap.c 2021-12-21 12:58:27.764927470 +0100 +@@ -481,6 +481,32 @@ + SIGRETURN (0); + } + ++ /* This means we're in a subshell, but have not yet reset the handler for ++ trapped signals. We're not supposed to execute the trap in this situation; ++ we should restore the original signal and resend the signal to ourselves ++ to preserve the Posix "signal traps that are not being ignored shall be ++ set to the default action" semantics. */ ++ if ((subshell_environment & SUBSHELL_IGNTRAP) && trap_list[sig] != (char *)IGNORE_SIG) ++ { ++ sigset_t mask; ++ ++ /* Paranoia */ ++ if (original_signals[sig] == IMPOSSIBLE_TRAP_HANDLER) ++ original_signals[sig] = SIG_DFL; ++ ++ restore_signal (sig); ++ ++ /* Make sure we let the signal we just caught through */ ++ sigemptyset (&mask); ++ sigprocmask (SIG_SETMASK, (sigset_t *)NULL, &mask); ++ sigdelset (&mask, sig); ++ sigprocmask (SIG_SETMASK, &mask, (sigset_t *)NULL); ++ ++ kill (getpid (), sig); ++ ++ SIGRETURN (0); ++ } ++ + if ((sig >= NSIG) || + (trap_list[sig] == (char *)DEFAULT_SIG) || + (trap_list[sig] == (char *)IGNORE_SIG)) +diff -urN bash-5.1.8.orig/y.tab.c bash-5.1.8/y.tab.c +--- bash-5.1.8.orig/y.tab.c 2021-12-21 12:57:08.075139321 +0100 ++++ bash-5.1.8/y.tab.c 2021-12-21 12:58:26.116890545 +0100 +@@ -8787,10 +8787,8 @@ + old_expand_aliases = expand_aliases; + + push_stream (1); +-#if 0 /* TAG: bash-5.2 Alex fxmbsw7 Ratchev 11/17/2020 */ + if (ea = expanding_alias ()) + parser_save_alias (); +-#endif + last_read_token = WORD; /* WORD to allow reserved words here */ + current_command_line_count = 0; + echo_input_at_read = expand_aliases = 0; +@@ -8825,10 +8823,8 @@ + last_read_token = '\n'; + pop_stream (); + +-#if 0 /* TAG: bash-5.2 */ + if (ea) + parser_restore_alias (); +-#endif + + #if defined (HISTORY) + remember_on_history = old_remember_on_history; diff --git a/patches/bash-5.1.8/series b/patches/bash-5.1.8/series new file mode 100644 index 000000000..0e53e492a --- /dev/null +++ b/patches/bash-5.1.8/series @@ -0,0 +1 @@ +0001-Bash-5.1-patch-12.patch -- 2.30.2 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de