From patchwork Thu Mar 1 22:30:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 26146 Received: (qmail 17127 invoked by alias); 1 Mar 2018 22:30:42 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 16964 invoked by uid 89); 1 Mar 2018 22:30:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 01 Mar 2018 22:30:25 +0000 Received: from ESESSHC018.ericsson.se (Unknown_Domain [153.88.183.72]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 34.00.11615.EFE789A5; Thu, 1 Mar 2018 23:30:23 +0100 (CET) Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSHC018.ericsson.se (153.88.183.72) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 1 Mar 2018 23:30:22 +0100 Received: from ESESSMB505.ericsson.se (153.88.183.166) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26; Thu, 1 Mar 2018 23:30:22 +0100 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB505.ericsson.se (153.88.183.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26 via Frontend Transport; Thu, 1 Mar 2018 23:30:21 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from [142.133.49.54] (192.75.88.130) by MW2PR1501MB2009.namprd15.prod.outlook.com (2603:10b6:302:b::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Thu, 1 Mar 2018 22:30:19 +0000 Subject: Re: [PATCH] Improve gcore shell quoting and portability To: Georg Sauthoff CC: References: <20180225204601.19068-1-mail@georg.so> <6c710a6d-5d12-c2eb-4c11-9c28196f3866@simark.ca> <20180301194802.GA27018@dell12.lru.li> From: Simon Marchi Message-ID: <5f993cb3-a42d-eac5-5f2d-6f73a32eb169@ericsson.com> Date: Thu, 1 Mar 2018 17:30:10 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180301194802.GA27018@dell12.lru.li> X-ClientProxiedBy: SN4PR0501CA0077.namprd05.prod.outlook.com (2603:10b6:803:22::15) To MW2PR1501MB2009.namprd15.prod.outlook.com (2603:10b6:302:b::33) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f45d58d8-ccec-491b-37c2-08d57fc403ee X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:MW2PR1501MB2009; X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2009; 3:P3h+HVPlYqfjUuh9b6Cqvza+BCKYITL7WAuFxpJHVXNxmwaCxoDHPUh5FKNviIuYLkFWKySa6Fr9o7SuAJPfAQcmVLdfb4vNxGUVaJ9Q+oMtJNmJm1UthpFBuhVY1Rzzw70vJQY6ODt6yLVg52/Jz+xKuZb+lhI6TpZwDr9SC8GEgNoagFquFOHrGSP/da2hYxuSmJQ5cQ7Kum7SzuPcbGwJXiCKOBsmO6aUwEHw6dU9kWrYj61Lc4yvTJkhyjRw; 25:ppZmCVQs6y3TV3FLiTnsJri66nuaQusFdKRzeiejfpph58rHNDOSh0opIrhq9wCYoCnOj2MGO/nbal6Z5vUTZmAq8vdV4XNUPEGyAWhMnLXiseUNHEhmuX3PF7vL7Ja85n/KL325ppyrTAvXH1GfoKzPT5g2XmkfUTwfDu9i2FFqQaVq5daT5zI6WzjKzctmR8dz/VeSqTYyRivQtK0y+yVdrpdgVieVLffVJWtNgA3Jp6HAwT78HDWm/co73pwg19ci/HPaqyF4n9hFhraetuMOp0dsbxQphfDDExAxoLmrzPhkBGP8DQlZwfV2WOQAXGpzDEhIUsiihirrYh1sWw==; 31:nXj6806opFeU7k72I8uqbQZXvuOnbYiWRgNpuq4zGxtFWO1Q7VMoVjug4+KDS0egM8P9bhaAm/dMmKyU7Ho26cJawi66mGsZH7gZRcOCdL59UvPE7sfA5+s9thNeJGnxL54h0ScgPUOM1u+m7/AK5e+SEE/GMpyy9HzOzFkwRoGoE2Yee8JBVdn8RAELPaU/u0Zycjt2Hb0J0SLeSKBlY9hLrMXXcQIkJlTVJQ9U+mw= X-MS-TrafficTypeDiagnostic: MW2PR1501MB2009: X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2009; 20:JQVo7xlvn8Vh1aASJSx6x1RbEn1hV8hqHI9L84P0AyOKDmVgh0yAaD/aDkZHjIbGZF7SNXW1cqtidNc5MyJjJOGo5o0g3ZiqC3lcsa4QXLwZ/e4bMDUT3YSdAAI+fSwl7g2sDv1h2NhBXJW9A2ObRDtSoU/rhmV1ZuuVDnc8xKLnEClIv1F6AEftrQ7MBDzSaxI8tPP1VmrHPy/q8Ncmx6/6Cpjxal8bqhJJo5aCFTJpgsWXu6MuFySoITd9dHJJ9H0d7zln1mvRh/tQb2Z1w0bjinHI56wUwrGtqwo1tJUWfxwunuZZ4ldYk1vZgyNdB4S1EFnAe1kvZi3TeROhpo61I0320ARy63EZcO6ih8DoPWPjDrl/p8OEyNhwKcNqgkE6W6PuOAO9OgOv1OFzbAwRkoM+LJHirGneOEYS/cgrlYRmxecxx4x1miYTgWIuYL7t3DCcye2EUkXhTCsF34y9fTpKM4MdACOaamY+FDSm+8iPDCf0AA8MZ4odef/B; 4:VCokOMF7QvZ9ZDBC7Y0Ncsd51MX5GvvXmhNidCX+/OpKwiGnHrwAu9U1t+XAoZfkYXX8NEE1oMnvGisnvQpCknTJ9eNFmi6PWXpO+fwLKH/9R1hPimM4HFSQJ8ttL9WXF7uC73iKCSZpzWqQV6L13BaZ9mcly0Lf0hFAja+Jwx6p1y1EC8aY18PMZzWS0A5YXtkpFNx3lDrfCJXfVl3TWRQBkPO8chU/vzadzV1sUTPesbxFn1HiJkpwve2WCxXlMjo85h/Q05mbutNITrcBpA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231220)(944501227)(52105095)(10201501046)(3002001)(6041288)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011); SRVR:MW2PR1501MB2009; BCL:0; PCL:0; RULEID:; SRVR:MW2PR1501MB2009; X-Forefront-PRVS: 05986C03E0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(366004)(396003)(346002)(376002)(39380400002)(39860400002)(377424004)(199004)(54534003)(189003)(16576012)(6916009)(6486002)(4326008)(229853002)(2906002)(31696002)(81166006)(106356001)(8936002)(5660300001)(6666003)(97736004)(305945005)(5890100001)(16526019)(86362001)(8676002)(49976009)(186003)(7736002)(76176011)(36756003)(31686004)(50466002)(65956001)(1250700005)(59450400001)(2950100002)(58126008)(230700001)(26005)(6246003)(25786009)(53936002)(386003)(2486003)(81156014)(52146003)(65806001)(478600001)(66066001)(52116002)(47776003)(64126003)(65826007)(6116002)(3846002)(105586002)(23676004)(53546011)(68736007)(316002)(78286006)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR1501MB2009; H:[142.133.49.54]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNVzJQUjE1MDFNQjIwMDk7MjM6R2JiaSs0QUhIZ3VZSVNGdGZaWHFkWXB5?= =?utf-8?B?TVRaSnl6VmxIYTVQZ0tNVlpJcHhnTFZCa1FEQnZTeHZBelIrQ0NHK1FTTk9m?= =?utf-8?B?azdCd1FTZy9PK3c0VHJoUFJHYVliTkE2WG5NVE90bk13WXJ1NmNuVnlLMW85?= =?utf-8?B?Q1FVNmxmSUdnK1dxMDJuV0NOZGY5NDNWQlg1ZCs4V2dvUnkwUGI5Z3RIOWxy?= =?utf-8?B?N05QUjVacmxuV2FlS3VXR3lsajFhejVKYkZic25ja3RPVTZpWFlGWGhDL2ZE?= =?utf-8?B?RnpzdTVMYVdsMDRvb3RqaTZhMjVhUEREbVIwcXBzdEYrTG1ia092L2grbWhi?= =?utf-8?B?aGZ5WllhQnRaRWpFM0RGc3pOU0IydzFjaFF4TWw5cnlCQmI2QzFNUUJXSkly?= =?utf-8?B?dCtRVnZ1WElibWtPSzF0dkcycTBMaEEwWFhEY2RJN1Z1T1hvSFd1MWhYcDJ6?= =?utf-8?B?TnM3b0ZrVjFVYkN1YXRxUGIyVmhFQmhZY2RibUZzdHA3WTZSczBVK0FPU2Zp?= =?utf-8?B?NlVYUzMvclc0Q1pHUkc1Nng3TG1vUGJmY203d1BVVGtRN2RMR1hMSmhCQ09y?= =?utf-8?B?dStGQXR0NU96NTJwaWdNQ1l0ckRST01rSFVpOHR2R2tVY0ZycFpNNzY3b01x?= =?utf-8?B?aENJalN6U0U0WGtRcjRXNjZaUGppVEhMdlN1ajA4VlN0WE52b1dlU1dtdnM0?= =?utf-8?B?RG0ySkd6L1JjZ0NkM29GUjFmKzJkNk5vRktmTmJyMjBBVE9PZ1R5L0FWcHZP?= =?utf-8?B?Mkd4L3FSdWFmODd1S0VvblZ1UDRGVWc0a2Y3azU2aE5hNzRGRU5nZGw0amwy?= =?utf-8?B?S1V5UmtaWDdxaGQyMm9pMGZ5eituQWNkYWp0RnlHbTBUdGwySGZhRUdobnp6?= =?utf-8?B?aWR4M2hyNld5ZEhTUGJxb0lnY1Nxem1ueGlNaGVEbHdvSHlOcVRnRXZtK0hW?= =?utf-8?B?UXFwNEhNU2lVQUpIU3dVby84ZzZDblkwZTkrY1hPOElDYUJMWlhwOVdPUDQ3?= =?utf-8?B?Nk1mZThaVXI2K0FYTERlNFB4ZkJ3TnhXODZzZHFINEhET29GNXFoeWFqZjNE?= =?utf-8?B?REY4dUs4Nk83c2NNYlo3K3E4eVRIbGF6eGlQVW9abHFCRS9COTI3c0MwaG1D?= =?utf-8?B?VDJjbUpwMi9xTkhCWjhKOVA0aVV4REVWZStqZHhMVEFPQ1UyRk1CWjJYcHF4?= =?utf-8?B?QTYrc29BdDNrRkFBa1RTdFZvY3JxM2diL0M0akxueXlHVnUxYjlEYTNhWmNR?= =?utf-8?B?bGhpbXZxSzNENzV6YVlYczhud1ZlcjVjQVlTbllpU25QV1J4eHBSRVZQeWxi?= =?utf-8?B?VWtseEVaMjYvY0JvVjZ3NnNBRTdyK1RZajRXWWVRbFRqOW93dDdvSmp0Q2xv?= =?utf-8?B?YnBYRTVCV1FBai83bklhQlNhNnlUWjlRTmZrdEJ0ZFZqdno3djBUcGlmdUtE?= =?utf-8?B?NGo1eDFXcDRkYitLTmpmMlJvR09lNmZrTXRUV2lVZStEa0FtWk8vekJVU2Iv?= =?utf-8?B?Q0tvU0g3SUVmTnpkMjdQRDVEd0QzdFZRTkRmWkdDU0o1UjBUWmNVQnJpa0Jr?= =?utf-8?B?T2ljRDdUamx5QzV1V0JPRlcrbk5NUHBDempkSWQ2R1RkR1VvQTBiaHRMZXFj?= =?utf-8?B?dk9xVG1KMUsvWUg4UXpvRTI0ekJwUWZadkdtY3dCZ2g1RFNNWmw0RUp2RW5W?= =?utf-8?B?dFI3MUpmRkw5eVZmdW9MaWlya09paHlPTHIrd3JtMXJ3Lzl1WWI1QW5JSmNq?= =?utf-8?B?TkNCQ21HeGQ4VlNTQ0pmYytlTEwzZkxia3M1Vmdva01tazdCaVNINTJBUjlj?= =?utf-8?B?b0gxM25STHk0eWc5dW9kMlRoRXZLS2hxNUlXR1JGem5tQUtTUGxIRjVqNTZZ?= =?utf-8?B?cTBCY09XeWF3RitIT1d4d3o5VlJrZDdxSk52Mk5INDlVMmpGbnZDajRKMTRH?= =?utf-8?B?UlRaZHcwaFppeEY2Y2ZVR1F2cHhoc3l4Q3ZtWnB5SXl1ZVNyVlJNUHlyc2xV?= =?utf-8?B?SVpFeitXS3A3SFdLcU5BalJyU3I0U0labHhjNW1rbTl3MUl5SERoNTltZCt5?= =?utf-8?Q?Qz9HGo=3D?= X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2009; 6:rqcoUI5J5LOD7NN+TuQ3qU2paRGcoJ615EFk9Gt6DNhoTJri/tbWCSdRQI8xT5x5J7ItELE/0tb5+dHdq6yRFtluYaCpoDxUtVvswh+rOmvdY226toWm9npw4CIIiRGsgkGvt4q8Z+ioALg4Q3Bfp/+N+AoLwxd0GGHNcYZR4Ry1fDqNO0tC/vAP4RX3ZeZS162p6LSjPPrFxmPPjfJdvnoQfTco7vTEdnljp9vTvGajaHNymPGD6qO51oRxE6mV+2HD8gZ+Biq4hPwNES6CDdC65wyx/x1jLVA9Xq32fm9XT4RTx/ypaapX/HHmJTVUDwnaxC85tMzxfNfsj5s7ZepvspQ8EX/k5Y4v4K2fto4=; 5:ug15xv22HXmciptawB/N5Kz353TRAx4pMwdrk0CdeEIBdCsheGN7OrSNJspj6AEpyVsVm9qkcts7JdGti0M1jfHW3zOTPw877oGBoyd9sLuqvEEZA6I/ze/y6axM5JXDDfnAK/Kmt+CKibUYtsJAU/NZEcp5iTF6H0EXvdbzSgk=; 24:uwSDY2yeWCBEnPXaNDWpwiy+YRt7x/1u56xMfawTC+hm/Sx/XgqGpS5IVi12weniUo91S1hqSMRn0GDeyIp8Qt2mnlHeqHAHdVTgjy7DbkM=; 7:Vu3+A90USmZ/IfTJVsPuRJeRY+NIfD3r5OXBbcTYsemjhCVOnwPMg9MZFLExV2aif0RmtYScS9Uhg4gZHzdSwaN9dTTTGuDZg6U2s5LPXDvqPubaLf3BitFN/vHBDHVNHNzZmfHC6rCFup0Evtg0gaI4Np1YtJfyWoM1vu//7tXft0K1YON0onXPJhTzBKuO6QWPKmBCvNvWIjASPQnU/qLfDMGgBrPhXBdA9wG4bJvo28xYKBiDSJNXmx6o7Pmb SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2018 22:30:19.4054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f45d58d8-ccec-491b-37c2-08d57fc403ee X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR1501MB2009 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes On 2018-03-01 02:48 PM, Georg Sauthoff wrote: > yes, I'm fine with all your suggestion. > > I'm also a fan of the `#!/usr/bin/env someinterpreter` construct. > > Thus, please go ahead. Thanks, here's what I pushed: From e1e6f073a9f5d7c3183cb8096fb24a42c28ba36b Mon Sep 17 00:00:00 2001 From: Georg Sauthoff Date: Thu, 1 Mar 2018 17:23:31 -0500 Subject: [PATCH] Improve gcore shell quoting and portability The gcore shell script (gdb/gcore.in) doesn't quote its variables enough. For example, trying to write a core file with - say - a space ungraciously fails like this: $ gcore -o 'foo bar' 6270 /usr/bin/gcore: line 92: [: foo: binary operator expected gcore: failed to create foo bar.6270 Similarly, one can inject meta characters like * (by accident) that may yield unexpected results, e.g. as in: $ gcore -o foobar '*' This change fixes these issues in several places. Aso, since the script uses array syntax, the patch changes the the shell in the first line from `/bin/sh` to /bin/bash`. POSIX doesn't specify the array syntax for shell, thus, the script doesn't work on systems where /bin/sh is linked to - say - dash. Since the source gcore.in already is processed by a pre-processor one could even auto-detect the path to bash and thus dynamically generate the first line. For systems where bash isn't available via /bin/bash. But I think this would be overkill and /bin/bash is good enough as most systems probably have it. gdb/ChangeLog: PR gdb/22888 * gcore.in: Quote variables and switch interpreter to bash. --- gdb/ChangeLog | 5 +++++ gdb/gcore.in | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5b911af..5bfbe9b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-03-01 Georg Sauthoff + + PR gdb/22888 + * gcore.in: Quote variables and switch interpreter to bash. + 2018-03-01 Tom Tromey * dwarf2read.c (alloc_discriminant_info): Fix default_index diff --git a/gdb/gcore.in b/gdb/gcore.in index b7f57cd..233c00d 100644 --- a/gdb/gcore.in +++ b/gdb/gcore.in @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash # Copyright (C) 2003-2018 Free Software Foundation, Inc. @@ -28,9 +28,9 @@ name=core dump_all_cmds=() while getopts :ao: opt; do - case $opt in + case "$opt" in a) - case $OSTYPE in + case "$OSTYPE" in linux*) dump_all_cmds=("-ex" "set use-coredump-filter off") dump_all_cmds+=("-ex" "set dump-excluded-mappings on") @@ -84,7 +84,7 @@ fi # Check if the GDB binary is in the expected path. If not, just # quit with a message. -if [ ! -f "$binary_path"/@GDB_TRANSFORM_NAME@ ]; then +if [ ! -f "$binary_path/@GDB_TRANSFORM_NAME@" ]; then echo "gcore: GDB binary (${binary_path}/@GDB_TRANSFORM_NAME@) not found" exit 1 fi @@ -93,16 +93,16 @@ fi rc=0 # Loop through pids -for pid in $* +for pid in "$@" do # `