From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CABB7C4332F for ; Mon, 21 Nov 2022 08:55:30 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2D05582BCD; Mon, 21 Nov 2022 09:55:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=digi.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=digi.com header.i=@digi.com header.b="tdrH9Axt"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8C45982BCD; Mon, 21 Nov 2022 09:55:26 +0100 (CET) Received: from outbound-ip23a.ess.barracuda.com (outbound-ip23a.ess.barracuda.com [209.222.82.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A9DFF8039E for ; Mon, 21 Nov 2022 09:55:17 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=digi.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=Hector.Palacios@digi.com Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by mx-outbound-ea46-244.us-east-2c.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 21 Nov 2022 08:55:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BoU/VU1StSuNTc2MOVWVdSEyB6kp/KVoB8CgDvLxyAYu87hWhlAq5PJFs1IjLBinSBZbGACG7cOSOcwM8nBzxtgXLoRFM60QBdbCOFtagfIZ78YI4VfEt2uoBdZBqKPhF8LARr07jIq0keQl970Dqzf6xeknfUTlqNjBIgOtqBXfCmViHcA1Xn8vIKSCdNlAWAQb9bTG5tBr035skURWh9Z7CZaebYxJEHzjA92uFNM9C7WktyruWrWE9ibilaGxElwY93mXVPSJ43S4NUWsBolVTpccWURcRRakc9u5YX/IQyxT16Vu/OuRU6vkK7B1X5rgCef41+hC0nNMQBrEZQ== 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=x9Dadd+xzu3sUnF+gr5jU12Zgn8igGWpn8ut+GDn30s=; b=nVSVi/fkT6LkvN3xEUAg6jJ/GVGYFUazlMQYTansYVVIvvUSPivIZSCuQIJQyGurlgq08WN0aOCr702SDnX52TeHzacllHoIELCAhwbwMoRoLgfYTR7rWqTbW5j5Q6AmK9eczU5SjIQ/8CvPaB8b5xin4Dxug6bkAaNKco5pdorEt/+XhsTmkMYPCbhtSiCzLGzd2M6UfLS4Jx1yuCpKgEmVFiPwenXjT1yK23t4DWgofO6ccMjT++QgG7BxNUPhrNxd77ArvkZW8mwBSwUCz4sqVTBCc3PZmp5kW7p9a7MgwfPWDrdX4tMUkfn76R1QEpA+q7CaffWf6HyM0G5oGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=digi.com; dmarc=pass action=none header.from=digi.com; dkim=pass header.d=digi.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=digi.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x9Dadd+xzu3sUnF+gr5jU12Zgn8igGWpn8ut+GDn30s=; b=tdrH9AxtnuzVZ19aP8Mvunh8mZd/S3nHQpa4/2fX3UvSKyZngUCJkc/30tBkUoYQ6E9K6Dn+VtOVLFDQNFYT9aII4qC6Jo+IPNEI5e4XzQvkVN/Ol+kgnu/R9ZoAodL9dOGLgV6Z9usZwWYhDzPOi8ofdLvwC3Dfekocm/GDiyqqk4tJiuZMSrYpLVp6DSS/ZUdLy/6wDeszUvRHKdDCAVNhWued2Bgf6UC8gc2gyuNt2cgD3Yf5mEl+mHB0MT82fq1qz6f7ycHJCdE4gDBohy/vrMadQhItD6kj+8Bjhc00FjyAJkFjSRH6icCng3HPhgnPdjiD3wDLiAjJHcyFQA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=digi.com; Received: from BY5PR10MB4370.namprd10.prod.outlook.com (2603:10b6:a03:20b::19) by SA2PR10MB4570.namprd10.prod.outlook.com (2603:10b6:806:11e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Mon, 21 Nov 2022 08:55:12 +0000 Received: from BY5PR10MB4370.namprd10.prod.outlook.com ([fe80::58c8:8cc0:212:ce2f]) by BY5PR10MB4370.namprd10.prod.outlook.com ([fe80::58c8:8cc0:212:ce2f%3]) with mapi id 15.20.5834.015; Mon, 21 Nov 2022 08:55:12 +0000 Message-ID: Date: Mon, 21 Nov 2022 09:55:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH] cli_hush: fix 'exit' cmd that was not exiting scripts To: Marek Vasut , u-boot@lists.denx.de Cc: festevam@gmail.com, Adrian Vovk References: <20221118111937.24531-1-hector.palacios@digi.com> <3825c799-3c82-378a-5133-2f7c584e58d9@denx.de> Content-Language: en-US From: Hector Palacios Organization: Digi In-Reply-To: <3825c799-3c82-378a-5133-2f7c584e58d9@denx.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: VI1P190CA0043.EURP190.PROD.OUTLOOK.COM (2603:10a6:800:1bb::6) To BY5PR10MB4370.namprd10.prod.outlook.com (2603:10b6:a03:20b::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4370:EE_|SA2PR10MB4570:EE_ X-MS-Office365-Filtering-Correlation-Id: 0f56c374-d504-411b-ac0a-08dacb9e18d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8W75El7kxjtWneb78wChG+tyzUHiF8l8Sf0a/t0NNwzP5EcrE2MDj5gP9lnIrgldxgrghMiJGCULcCP83CQSgb0Nnc6EoCFAHxa/lTkbknucCgoYWC4RvSrqE8RkN+5M2x0YY0PBtiuzTtz/HN1n62SDooQEZTtnwcgP1oZVzLrPJgrfjgFZTrWEO/OpxN/ATfAJTXkxcbZlsixkp/hD7wKWQJcgX+lpVov95DGQSlaBt3JNdioZuWuqbKK6gc5xXZw2ulrzo2EcAA6/IGLP2bfwSyp5NDsRZHiKlelTD0wegJpqpnIxaIfzGZO+2vHIjnfV5MEUTh6+WvHykF4/h0efw8UD8mMGQSXq6ZCFmjI1IEeVZPl7WR4cGffGDLeEHkghQmwKn9qam6RtndYfgkgCSHFCNr+bzcnCRhdqpAKHPUKGRCj4DV4aM+ij5igdlIkAtvyOY3PYvAvoETc7yZp3lffhLkth/GobW69mBoaRNkrhUdoYc5z5rdLEWHnevHpMsAZxF0PxJ/URaUyNvjbti0zNj4955/WkdTx6swY6ZBtRtmT0VuE7NGkynK9DBIABmzCFuVaIBiDxRuqq0Gq30EEf9Mkjpfnu+l5gLuG5ojSmmOVldy2S8uh/s+3xxjNnacAZIwMXxRxyYSX2kfS70gK1GsOqY043WQ73Kurr6bSAxClDg2sZ56jXi5yZc9zVSTvmj4WdjtbHjsD/1zMLEj1gM6BU7u59wcH1TiY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR10MB4370.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(366004)(376002)(39850400004)(396003)(136003)(346002)(451199015)(36756003)(31686004)(86362001)(31696002)(5660300002)(44832011)(2906002)(53546011)(26005)(66574015)(2616005)(186003)(83380400001)(6512007)(38100700002)(36916002)(6486002)(8936002)(41300700001)(66476007)(66556008)(66946007)(316002)(6506007)(478600001)(8676002)(4326008)(6666004)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cUNWRk5hdnNOZmJibHJIQXk2RGs1WXQ1U0Z2K2FtbHNzQU4yUnZQcEZhSzlW?= =?utf-8?B?VDZyUGtCZFJseEdWRTQrdjFkN3c2cXhGM04xSlBQWHdaWmNEM29jOHBjUnZT?= =?utf-8?B?MzVWbHBqTlExK0Znbm5JTFVHYUkzc2FUN3p6MDZHOWxob3hMRlpzYU1XZ3Zy?= =?utf-8?B?NFFFdzYyVkdLK250dGovTVFpRlUrL1hjcGFvOXJzTXRVbHdxdy9rQUM2b2xR?= =?utf-8?B?elZ2VmtxaXMxNzh3ajlqYTA2WmN0YUp4Sm5PK0g2cVZ4am8weDhhVkxOem85?= =?utf-8?B?czcwVXA2VXp4VkRncDRMREY2ZHBTWWprSDlxVkNRbW9OT0lycllRUEhEeUZk?= =?utf-8?B?a2RNOHU2Z29LUTFOTVVXTFNibmZkVW8vMjJzeTRVWkRIRG90ZUYyUnpXZmlO?= =?utf-8?B?Z1FYVnNrS2VhaUU2QmVyMXFwSjYxVy9uWkpNbnhQdjVzaXdqT2xsUVdDMXhY?= =?utf-8?B?N1IreFRWRzN6bEVSSUVpSVowZHNyaXFzTEpERnBxVTdEbVpMeXVIUUx6U3Yr?= =?utf-8?B?aXZBQTVmZEtEQVBObGZDKzBxaE9MNnp3MjVIU0l6Smo3QzZhbm5yazFjU0cx?= =?utf-8?B?N0VaZjNmS0hqMjBnNi85cDA1cEVQQUxqeTFQVGJoL21rUHJpdmRXOWRkaDlM?= =?utf-8?B?azBsRkcwM1Z6UGxYd251dGFic3dZc2k2aDBWdE1ybFBkSGF6WThqZ3R2Zncr?= =?utf-8?B?U01NQlMyOVRpSWtrc3FQaEkvR1ZpZEljbjNNS2Jmc3VWYU9adkdrNTJ3WW1m?= =?utf-8?B?Sks5ZGlrczc0NG9TOW81YWhDa09BZ0NLUHd0RUcyMUIxMEpudGJwK2VGMWda?= =?utf-8?B?bDZLODFFSWNaQ0RUdDhwUGNlVTVab05kcms4NGJwTkN5dU1PV2U2VnluRlUy?= =?utf-8?B?cEltSEdJUnZNaEZWQTFKWWNoMk1iaENVTHF1L25nMEdzOG1HYk1PR2dkcEZ2?= =?utf-8?B?am5ycnpNeHo2Y1JadWxOL2Nvb0hyL1haZ1lXdGR6THBrdGFVcVJGUDNiaFRJ?= =?utf-8?B?YWdhaVdXMnZhTkloVHhwVjNnai9DQnc5Tm9vR0VTcE9uTldqaG9GVitnQ2J1?= =?utf-8?B?Q0JscVVGajhNSGJ0U2NTdTdJMEh6WVppNmRDdEpnQlVhaUVOV08wQjlJTlF0?= =?utf-8?B?ZEFJbkdKMUVVNUtORTJibzVDWVc1UEpiTVpNamowekVQU29Kc1ZXTDlWZmpK?= =?utf-8?B?Y3FJSWh5QXB5ZUdvQlhoR0t0NTBPeFRhRjBzWVpGRjVDVXRMV2t1dUEyU3dS?= =?utf-8?B?UlVBWkNGYUtIU2tFUnBlL3M1WTVRUzBJeS80RFdtSk1HU1ExV1pWREdWMm8y?= =?utf-8?B?bG1jRG9mT1hKaHQ2RWd2Tzdib2dUQ0JHZVFPMnpPZS9manVqSDU1ekxCUjcy?= =?utf-8?B?SVVNTG9WK0lvd1lDYkNSbkJ1V2dUOWpNekxZWHZHNWRUYVRTemF3T2JuRzFD?= =?utf-8?B?djVxSnhUNEc4SGFhc0NMMWtFRE8wVnBBQ05nVlg5eVpWL2VjT1gxTkVDbzJK?= =?utf-8?B?b2NyQlhuU3RiYjE3ODVYbDh4WW5jbU5FNnZ3dkZta2VrR1VDbFFoOEVqRFYx?= =?utf-8?B?QmVaREQ4ZzZ5QlN4aW9CRFl5MER4Ti9SaE1yMFJxSmlVa24rNXBERFMwTk5U?= =?utf-8?B?d3hTeUc3NnNBaXNEQi9LOVU0WThJazJ4SWJuNEZwVFNHWGdPQStiMzlZNjJK?= =?utf-8?B?OENZanNuL1d5Yk9YMG9pa0FsU0ZvcFRpK083d0VkNytRRUVXQkk5NnJNbHpJ?= =?utf-8?B?OC9GZWNKN3d4NVAwQjY4Z0x4Tmlad3JkNWlYWXVmR2I1b2p2ZDZJTXptWlZ6?= =?utf-8?B?U2FqdEF6d1dhS2ZtNFB6bDM1ZGlwbi81UjYrUE02UFhFaHlLWllrZXRTc3N6?= =?utf-8?B?YS9vWE83VitaUmNDc08xNzBOcjJKRmU0MUc4SG9Yb0xUSWpKa21VdXB6aWdV?= =?utf-8?B?N0dmWVF0UitTaWd3ZGsyNHo2ejkrZDRBeXdQU01tai9YWHBzYnhTMUp6V1Z2?= =?utf-8?B?TysvcmRMMERkRWljTDdjcE5uS283VXJFN1R3Uld1cndKcUhIWFkxTTVUbUkx?= =?utf-8?B?eXRxYXRXcFM0SGlpUVpjOUY5RGZpdVA3aEtzYXN5OEF5MzZzUzhUcHVJeFVZ?= =?utf-8?Q?W+zZJggLOTG0iaC0rLxhvQCrC?= X-OriginatorOrg: digi.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f56c374-d504-411b-ac0a-08dacb9e18d2 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4370.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 08:55:12.0887 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: abb4cdb7-1b7e-483e-a143-7ebfd1184b9e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DJySYgktkOhzulrNQ11Eac1Ud2gjREVKF4A31jZgd9FGMqUy9YBJanjW8U+Yh2x61zon3QVmUqysPuhr2fYpzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4570 X-BESS-ID: 1669020915-112020-25201-593743-1 X-BESS-VER: 2019.3_20221111.1648 X-BESS-Apparent-Source-IP: 104.47.58.105 X-BESS-Outbound-Spam-Score: 0.50 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.244295 [from cloudscan10-75.us-east-2a.ess.aws.cudaops.com] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.50 BSF_RULE7568M META: Custom Rule 7568M 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.50 using account:ESS112744 scores of KILL_LEVEL=7.0 tests=BSF_RULE7568M, BSF_BESS_OUTBOUND X-BESS-BRTS-Status: 1 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean Hi Marek, On 11/19/22 15:12, Marek Vasut wrote: > On 11/18/22 12:19, Hector Palacios wrote: >> Commit 8c4e3b79bd0bb76eea16869e9666e19047c0d005 supposedly >> passed one-level up the argument passed to 'exit' but it also >> broke 'exit' purpose of stopping a script. >> >> In reality, even if 'do_exit()' is capable of returning any >> integer, the cli only admits '1' or '0' as return values. >> >> This commit respects the current implementation to allow 'exit' >> to at least return '1' for future processing, but returns >> when the command being run is 'exit'. >> >> Before this: >> >>       => setenv foo 'echo bar ; exit 3 ; echo should not see this'; >> run foo; echo $? >>       bar >>       should not see this >>       0 >>       => setenv foo 'echo bar ; exit 1 ; echo should not see this'; >> run foo; echo $? >>       bar >>       should not see this >>       0 >>       => setenv foo 'echo bar ; exit 0 ; echo should not see this'; >> run foo; echo $? >>       bar >>       should not see this >>       0 >>       => setenv foo 'echo bar ; exit -1 ; echo should not see this'; >> run foo; echo $? >>       bar >>       should not see this >>       0 >>       => setenv foo 'echo bar ; exit -2 ; echo should not see this'; >> run foo; echo $? >>       bar >>       should not see this >>       0 >>       => setenv foo 'echo bar ; exit ; echo should not see this'; run >> foo; echo $? >>       bar >>       should not see this >>       0 >> >> After this: >> >>          => setenv foo 'echo bar ; exit 3 ; echo should not see this'; >> run foo; echo $? >>          bar >>          1 >>          => setenv foo 'echo bar ; exit 1 ; echo should not see this'; >> run foo; echo $? >>          bar >>          1 >>          => setenv foo 'echo bar ; exit 0 ; echo should not see this'; >> run foo; echo $? >>          bar >>          0 >>          => setenv foo 'echo bar ; exit -1 ; echo should not see >> this'; run foo; echo $? >>          bar >>          0 >>          => setenv foo 'echo bar ; exit -2 ; echo should not see >> this'; run foo; echo $? >>          bar >>          0 >>          => setenv foo 'echo bar ; exit ; echo should not see this'; >> run foo; echo $? >>          bar >>          0 >> >> Reported-by: Adrian Vovk >> Signed-off-by: Hector Palacios >> --- >>   common/cli_hush.c | 4 ++++ >>   1 file changed, 4 insertions(+) >> >> diff --git a/common/cli_hush.c b/common/cli_hush.c >> index 1467ff81b35b..9fe8b87e02d7 100644 >> --- a/common/cli_hush.c >> +++ b/common/cli_hush.c >> @@ -1902,6 +1902,10 @@ static int run_list_real(struct pipe *pi) >>                       last_return_code = -rcode - 2; >>                       return -2;      /* exit */ >>               } >> +             if (!strcmp(pi->progs->argv[0], "exit")) { >> +                     last_return_code = rcode; >> +                     return rcode;   /* exit */ >> +             } >>               last_return_code=(rcode == 0) ? 0 : 1; >>   #endif >>   #ifndef __U_BOOT__ > > Looking at the code just above this change 'if (rcode < -1) > last_return_code = -rcode - 2', that explains the odd 'return -r - 2' in > cmd/exit.c I think. That's what I thought, too. The cli captures a -2 as the number to exit a script, and with -rcode -2 was exiting and returning a 0. Instead of capturing a magic number, I'm suggesting to capture 'exit' command. > I wonder, can we somehow fix the return code handling in cmd/exit.c > instead, so that it would cover both this behavior listed in this patch, > and 8c4e3b79bd0 ("cmd: exit: Fix return value") ? The cmd/exit.c seems > like the right place to fix it. I didn't revert or touched 8c4e3b79bd0 but if what you wanted to do with that commit is to return any positive integer to the upper layers, I must say that just doesn't work because the cli_hush only processes 1 (failure) or 0 (success), so there's no way for something such as 'exit 3' to produce a $? of 3. I think the 'exit' command should only be used with this old U-Boot standard of considering 1 a failure and 0 a success. I could remove the 'if (rcode < -1) last_return_code = -rcode - 2', which doesn't add much value now, but other than that I'm unsure of what you have in mind as to fix cmd/exit.c. > > btw. it would be good to write a unit test for this, since it is > becoming messy. Regards -- Héctor Palacios