From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1oLRFc-0006WL-9x for mharc-grub-devel@gnu.org; Tue, 09 Aug 2022 11:34:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56630) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLRFa-0006Rx-0t for grub-devel@gnu.org; Tue, 09 Aug 2022 11:34:34 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:10500) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLRFW-0003c9-ML for grub-devel@gnu.org; Tue, 09 Aug 2022 11:34:33 -0400 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 279EfbA2005393; Tue, 9 Aug 2022 15:34:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : in-reply-to : references : date : message-id : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=sGONVO3AiIQP0a4WNQcvJ1/s9wL8RIBiHlAhSV16Fw4=; b=yslagJxgny+WmP++KYk7irpGRIW5CtPwH/jqhw0xf0aAOWmmUQw5TT937npngnwgI6pC F90qsgCU6eNalOK+1MHvwsJkoPAVcg78tQhfIvsieg3GIWEWd4p1WBUjsMnMMohakgcr PGR654MbgI7GeQc83KUflDD41q914Aj9BUt5TTcaO5J30Zc2bAsBUeM0DlJ8pLBr5xOy MzgRTaf0OUJXDzKBgYHREJg5ipJ5ridGjfj0/iRWG6u/b/2x5RsG43+UEYCbrc5BzuOC 0zCERRcIWbTaiRP29z5Sg8TZveHuCAQqZuFYbthxvEkSKGDxq7cPrAfFiyN+REWWTfba OA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3hsf32ewu8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 09 Aug 2022 15:34:26 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 279DU44f032843; Tue, 9 Aug 2022 15:34:25 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2175.outbound.protection.outlook.com [104.47.57.175]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3hser2xxuc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 09 Aug 2022 15:34:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hijT/2z0DvYjO32ttPw9KW75J7YRc1pIXJoY1pDY1s02+f9TXeZTjRMGOmfbjeMQp88CHCD/y9y597rw/h/BvfEVAaxcsyultEK+/gR/nR+97QwipeNgTH4o0Jcwp1ZyP9rfFKWt5fhew/+1SkqaXHKq+itUAYMkuc7FseyB+7D/VZqmeIBlf3p0kUZl8PfIkI0/7s9RaLzqV+2Pm1wUzwOqYiyOThNijn8dNa2VEV7elahG4DIE5uJMsiZEyI/b+f7fPVI95SxDM4/UvezWxhKQnOykcGiwug8ZgA6PXmxG0y4VDASivqSe85NsBPRiyhJ0r6GdPZNq9eHGaPkvQw== 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=sGONVO3AiIQP0a4WNQcvJ1/s9wL8RIBiHlAhSV16Fw4=; b=YGiYBjJxr9acGsge2Tri43hNRPYZtGnfuRvo5rCz1YY5biT1UGPPJzcpdDPx7dicWsuyMUguCXELZ/raCUyu16fdEIPW8CXXaA1opcmXM4YMDI+v3hjszZEolJ6RE2adPXWlKYjnnIBlrLyFXW1q+tlTqvvPi5WEShgshqS63+TZwIjA5/TyRJXNh2BuIA7BdHh+MCsqE36R4C+GWJZUOupXsCsxcg+Pw+SJCKYp+iV4+fqRtSyTmJJESnMtYu6NDRTpipgx8vlHYWHnImLFH6JWUZbiVO7ldU9uCmzALUU/yBDKjrGCImprKh635B7yfhCO4M6UFx8jYHcmrLkhIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sGONVO3AiIQP0a4WNQcvJ1/s9wL8RIBiHlAhSV16Fw4=; b=UrQMgNXXzhKh9BGOEPWNSWkkafqfmx9KsFKpN/fD3t+NwsZIZ95haqeK0qpJFulI90dSZbFzaBSgcOYdUWU8KK2UM7c/ep9kvD2u3zmrjyg7k7hKJG0HyoNBNNTndPYAs2pXOyMn5ncU7s9YXP4nvxNVYXOvk76pXR2I96flCVw= Received: from BLAPR10MB5138.namprd10.prod.outlook.com (2603:10b6:208:322::8) by MN2PR10MB3997.namprd10.prod.outlook.com (2603:10b6:208:1ba::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.16; Tue, 9 Aug 2022 15:34:23 +0000 Received: from BLAPR10MB5138.namprd10.prod.outlook.com ([fe80::89fe:338:779d:6bb0]) by BLAPR10MB5138.namprd10.prod.outlook.com ([fe80::89fe:338:779d:6bb0%8]) with mapi id 15.20.5504.021; Tue, 9 Aug 2022 15:34:23 +0000 From: Darren Kenny To: Vladimir 'phcoder' Serbinenko , The development of GNU GRUB Subject: Re: [PATCH 2/2] util: confirm directory creation in grub_install_mkdir_p In-Reply-To: References: <81c91d3383b09b4992a269a292ee8094a8b81257.1660050047.git.darren.kenny@oracle.com> Date: Tue, 09 Aug 2022 16:34:19 +0100 Message-ID: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: DB3PR06CA0003.eurprd06.prod.outlook.com (2603:10a6:8:1::16) To BLAPR10MB5138.namprd10.prod.outlook.com (2603:10b6:208:322::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0f2c302-ec34-44d0-cfb7-08da7a1ca2a2 X-MS-TrafficTypeDiagnostic: MN2PR10MB3997:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6ji20HWAsAFcIAMGyZsNcFp2BhJq/hFHUetXC6v/WR/WHUiMUlU/SocnaHNMZ9QDZ3EVUJSU9nGCrmyAvsoec3rsTENcNDmInOjA0fyozaBOrj9HcTAgot+jtikscEqdv8oEmV6dPDiiHqvjJZOETO95QBaggfC0bLeJyOvoJSy2UWM4mFl28eRYUz9cudqPBrItf4PiekGD2c64QgVs046Tu8N/Yimp7m+bU50Rn1up7n2XVfnz3NYdPbHrbkpvPS6V8nYJw92+7VWoo2mo+XkEYXAYKOmExldEyHNdtQ5BcnJtyP1NDSMI5UC50QaiHDaf34h/89ESU6KXAOeNxsQ6yEHObzCu7ZKai0Zy6EznlUBAYictkwQjj4D9X/6vXIR6dNSsmOaE1vDdcNpRC01LeizJZRKp86HvSayl9bvK+QaS3kiIR4MokEIpPZqeiRrEZ3nx3ElBX3ZAr+JiiVyTs2nzfs/0qVWD/DcWu8wDsYKmKHyvs9hP6OM2GAUvGbGak+l2UBFz5OFBgeQHvKa/PRABFN2YLkwwz55yLjNdaCebXVQzhKlCtzwMWLfgARf+OE1oOP6+2E0hRsCP4TefwWw/GPoKbTsaOo6UmNA+qwx/+8IYOLzbQDkcHtXfWN4FoSqWqrrkTP85HGZQdQXGOvrto2Koj2FTHmT13wXlJbKR+LySF04qfzedaIse/04IlrUggPkBVQHU/Z48+oPsvP9KwVzZZR2BScpsSMi3npbdK5wz1ynUwTyg2Br5jwqODDmSq3mRfscwHrqwUQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB5138.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(376002)(396003)(366004)(136003)(39860400002)(346002)(2906002)(2616005)(38100700002)(966005)(83380400001)(6486002)(8676002)(26005)(41300700001)(110136005)(5660300002)(44832011)(8936002)(66946007)(6512007)(316002)(66556008)(6506007)(6666004)(186003)(478600001)(66574015)(66476007)(86362001)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QzU3RmVTQWtoS21ra25KcWpsZkE2cTRJS2MrUWFZcXpDNXRaSTBCY29XWTFl?= =?utf-8?B?RXRwQWJoSE0wdEFaU0xkdlhLUGtYaHJ6V0syeVFIUzAwRXVBRkZPdXZRUmNN?= =?utf-8?B?aG1zK25jZUhwenY3Y0x3TzkyTzBhZTkwaFM3alhmMldoV2RoVU5SYUdOYURJ?= =?utf-8?B?K0daUWV2ZmkrM1BpbVdId0VJU2F2QUNLTFlRZ0dJQXNRVjFUWERvN0ZVb2Ey?= =?utf-8?B?WTVmUTJOd09BZ3dzYzQ2MUhsYzgvY2d1S2ZjZnV3bSsvdnN0UlJ5SlVPd1lT?= =?utf-8?B?RUxsWW15Tmo3cTJpVzBTcUFRQVkrbHRoV2EwNG9rblVoK2NMQk9qS1dLN2lv?= =?utf-8?B?Z0RBWTdqWkNab3RzSWppSmxyVS8wSDA5alJxWTdKVE5HOC9ZVnVoOGFpZXpm?= =?utf-8?B?bGtIb2R4WnAwdXJ0aGR3aERVSURKUTlFQXBBVmNRakY3TGV5ZFNPL2I3blN1?= =?utf-8?B?S0ljRElZZkZ5YVF6V0M4VEhHaVp4Y1gvbkpmcWZ3MEVoYXBjaVlsa0ZqNkF5?= =?utf-8?B?dk1LREo0V1UrWFJXcTRGeCs5R2ZLUHIxandJbm5YUHBNT1lrd3JheGh5cnhY?= =?utf-8?B?R1lWRGlrRmErWjMvUlc3WW8xTkFHcTJGTk05ckJ5OE9qK0YvUERJR2lXTlRt?= =?utf-8?B?UmNlNEhLYml0eGRIQS9YUnhXWVkrM1VZMGF0enRVbXBTRzFLUU82ZDRPWWhq?= =?utf-8?B?b0RvS00zV2VYeGdSRjJLamc4MThCanljMm13azNaemNZdWJZbE5TOVpGT2dk?= =?utf-8?B?Tjh1YmhBVG9iYXAwT1lyMENpQlN1cXc3N1VmTC9vNDhCTDRacnBXSTBTUWFI?= =?utf-8?B?SFRQVUYweXVtek1mOTVxc1FIRVcrMzk5dm1mNHZPdXQyRDdHc3JiMnFOZmVi?= =?utf-8?B?T0FzOTZ2VjErd3VrTGY4SXBFR1FrWWk0aFZLTTV4U3JPVjdTbEx3Y3BEelRV?= =?utf-8?B?ejF3bzA5ZU1mKzQxWWNoK0Y4WkY1b2lPY1h0Z3Axekl3azhKSFZmUkloem9p?= =?utf-8?B?eTVSRTI2RUlHOHBVcDF1ODlISU5lOGR0UFJMRXl0cFk3OWU1RHZZRkg1dE9y?= =?utf-8?B?anpCVzJKWkVpWFZHVnB4TXp2enVwYjFHMmhoVVUrV1VBT3owS3lwV2NDN1dW?= =?utf-8?B?K1ZzZ3JRMGdMRDdQUWF0MHpheHZLUnU4eGlwWE5sTTF4eUJ2cExPR3FEZ3Ja?= =?utf-8?B?VWJORi90akl2M0RLQVZjYXRPa0xsb2NwR1Y5T1VEUnlGcElDQVcwOFBncGRQ?= =?utf-8?B?Z1gxV3I0VzY4V1Q3R3RUZmIvdE9jZVpyWVI4a3pOZlRtUndjbVRIZG15WEtP?= =?utf-8?B?cGZzdUw5NERCWmdVelZuaDBkQlhHanl4ZEVKTW5rWTdZNnh4akQ2bzJpcWps?= =?utf-8?B?RnRsODVjOE5pVlp1MWk0bXR3cE1mbzJuS21KR09XaGhBV21JUlIzeW9Qalda?= =?utf-8?B?dlF2My93T2hSd2dEZlhVZGJkSmlBMWhwWHc5d0k2TWcrZ2RUTjJPRTBWQkQ2?= =?utf-8?B?bXlXaGFqSmJGbDRsK21PK1JOMXRyNnBtUEd5WmVVUU1jaHYyL0p3YzNGT2Zt?= =?utf-8?B?Uk9xTDE0ZkR4WUdXMCtyWVZyWVR2TDFVNzZBUTJ5QzAvMmdMczMzbWljTUd5?= =?utf-8?B?YUVMODE1VDJINmhCSkMyU202b0JNZHdQUTFjQXNjODA2Rm5HK3NidHN6alBl?= =?utf-8?B?ZkVqbHE1eGlCWkJWN1NrbG4xd3NITWJoOTNZc0p1dWpENitqZmpuQUtvZks0?= =?utf-8?B?QnRuaU5HallpUnl1ZFN4UHN6TTh3RHpjOFZRSitCZ1dhMk9RNThUb053bzNY?= =?utf-8?B?QlN3dlZIMXUvR04rbFZCRVlkdGhxWmRLakJXT0F6Rjd3eUdNTVVZUzVMSG1p?= =?utf-8?B?YllxZmpEYmgwNFgzV0ppWmFzQ0JFcktPU2V1MVI4K1QxdmQ4eTZQcE8vcDZQ?= =?utf-8?B?M0ZQQzI1aVZPVldYVWtHNkxJRkcyNFZ4T29Pb0ExeWVRbDl4Sy9HQ080V3ZE?= =?utf-8?B?UkZLWG9xWk5LbGJ1SE9uVVB6MXBNa2p2aTJYUEdwbEhGYUt3OUNIVXNMOSt2?= =?utf-8?B?ZExWT0JMS1pRQSs4NVJ5VUdNRmFkd2kwcVBvRHB5ajZDWGhTN1BSU1Q2L1Jw?= =?utf-8?B?RlVSa1Z0TlJuRTVTbGJkVVplZjArSjlNV0FxSDZSV2xGVTdwVEVpTUhpT1FE?= =?utf-8?B?cHc9PQ==?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0f2c302-ec34-44d0-cfb7-08da7a1ca2a2 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5138.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2022 15:34:23.4941 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ifgA2qDDsUidbH+NSn5+gkhf5e2qggroiDjSfhV9tymM9xY5DeXWXoAMSstdO5NeqRuBE0/nh8ev7ahuAI3FeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3997 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-09_03,2022-08-09_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2206140000 definitions=main-2208090065 X-Proofpoint-GUID: bwdVbkQfjybdle3_6WkR7oZN-c9DhFX0 X-Proofpoint-ORIG-GUID: bwdVbkQfjybdle3_6WkR7oZN-c9DhFX0 Received-SPF: pass client-ip=205.220.177.32; envelope-from=darren.kenny@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Aug 2022 15:34:34 -0000 Hi Vladimir, I admit, that I did not previously. I just tried it out where one of the components in a deeper path was a symlink, and it works as I would expect. It will see it as a directory in grub_util_is_directory() using stat(), since that is looking at what is pointed to, in comparison to lstat(), which only looks at the symlink itself. Thanks, Darren. On Tuesday, 2022-08-09 at 16:04:32 +02, Vladimir Serbinenko wrote: > Did you test the case when some of components exist and are symlinks? E.g= . > /temp being a symlinkto /var/tmp > > Le mar. 9 ao=C3=BBt 2022, 15:30, Darren Kenny a= =C3=A9crit : > >> Because grub_util_mkdir() is implemented to not return a value on any >> platform, grub_instal_mkdir_p can test for success by confirming that >> the directory requested exists after attempting to create it, otherwise >> it should fail with an error and exit. >> >> While fixing this, a flaw in the logic was shown, where the first match >> of the path separator, which almost always was the first character in >> the path (e.g. /boot/grub2) would result in creating a directory with an >> empty name (i.e. ""). To avoid that, it should skip the handling of the >> path separator where p is pointing to the first character. >> >> Signed-off-by: Darren Kenny >> --- >> util/grub-install-common.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/util/grub-install-common.c b/util/grub-install-common.c >> index 347558bf5412..035293c2357e 100644 >> --- a/util/grub-install-common.c >> +++ b/util/grub-install-common.c >> @@ -173,15 +173,20 @@ grub_install_mkdir_p (const char *dst) >> char *p; >> for (p =3D t; *p; p++) >> { >> - if (is_path_separator (*p)) >> + if (is_path_separator (*p) && p !=3D t) >> { >> char s =3D *p; >> *p =3D '\0'; >> grub_util_mkdir (t); >> + if (!grub_util_is_directory(t)) >> + grub_util_error (_("failed to make directory: '%s'"), t); >> + >> *p =3D s; >> } >> } >> grub_util_mkdir (t); >> + if (!grub_util_is_directory(t)) >> + grub_util_error (_("failed to make directory: '%s'"), t); >> free (t); >> } >> >> -- >> 2.31.1 >> >> >> _______________________________________________ >> Grub-devel mailing list >> Grub-devel@gnu.org >> https://lists.gnu.org/mailman/listinfo/grub-devel >> > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel