From nobody Mon May 6 11:54:28 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1494604860878170.17047857838486; Fri, 12 May 2017 09:01:00 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 19F2921A04E20; Fri, 12 May 2017 09:00:57 -0700 (PDT) Received: from mx0b-00010702.pphosted.com (mx0a-00010702.pphosted.com [148.163.156.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 61D3321A04E19 for ; Fri, 12 May 2017 09:00:55 -0700 (PDT) Received: from pps.filterd (m0098780.ppops.net [127.0.0.1]) by mx0a-00010702.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v4CFtwtR003459; Fri, 12 May 2017 11:00:53 -0500 Received: from ni.com (skprod2.natinst.com [130.164.80.23]) by mx0a-00010702.pphosted.com with ESMTP id 2add7ngqrh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 12 May 2017 11:00:53 -0500 Received: from us-aus-exch2.ni.corp.natinst.com (us-aus-exch2.ni.corp.natinst.com [130.164.68.12]) by us-aus-skprod2.natinst.com (8.16.0.17/8.16.0.17) with ESMTPS id v4CG0p4Q004397 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 12 May 2017 11:00:52 -0500 Received: from us-aus-exch3.ni.corp.natinst.com (130.164.68.13) by us-aus-exch2.ni.corp.natinst.com (130.164.68.12) with Microsoft SMTP Server (TLS) id 15.0.1156.6; Fri, 12 May 2017 11:00:51 -0500 Received: from us-aus-exhub1.ni.corp.natinst.com (130.164.68.41) by us-aus-exch3.ni.corp.natinst.com (130.164.68.13) with Microsoft SMTP Server (TLS) id 15.0.1156.6; Fri, 12 May 2017 11:00:51 -0500 Received: from jmw-lm181.ni.corp.natinst.com (130.164.49.7) by us-aus-exhub1.ni.corp.natinst.com (130.164.68.41) with Microsoft SMTP Server id 15.0.1156.6 via Frontend Transport; Fri, 12 May 2017 11:00:51 -0500 X-Original-To: edk2-devel@lists.01.org From: Jeff Westfahl To: Date: Fri, 12 May 2017 11:00:44 -0500 Message-ID: <1d9b206d346af8fa90fda6b3cc4404a1f66f55d5.1494604752.git.jeff.westfahl@ni.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-05-12_08:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=30 priorityscore=1501 malwarescore=0 suspectscore=4 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=30 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705120300 Subject: [edk2] [PATCH] MdePkg/BaseLib: Fix PathRemoveLastItem to ignore consecutive '\' X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michael D Kinney , Ruiyu Ni , Jaben Carsey , Liming Gao Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch makes PathRemoveLastItem ignore consecutive occurrences of the '\' path separator. Consider a path like "FS0:\ABC\DEF\\", noting the consecutive '\' path separator characters at the end. The expected result of PathRemoveLastItem on such a path is "FS0:\ABC\". However, what we get is "FS0:\ABC\DEF\". We can see the result of this behavior with 'ls' in the EFI shell. Go a couple of folders deep into a filesystem and try 'ls ..\..'. Here's an example, with a filesystem with folder ABC in the root, with subfolder DEF. FS0:\ABC\DEF\> ls .. Directory of: FS0:\ABC\ 05/12/2017 15:46 8,192 . 05/12/2017 15:46 0 .. 05/12/2017 15:46 8,192 DEF 0 File(s) 0 bytes 3 Dir(s) FS0:\ABC\DEF\> ls ..\.. Directory of: FS0:\ABC\ 05/12/2017 15:46 8,192 . 05/12/2017 15:46 0 .. 05/12/2017 15:46 8,192 DEF 0 File(s) 0 bytes 3 Dir(s) fs0:\ABC\DEF\> As you can see, 'ls ..\..' lists only the parent folder. This patch resolves the issue so that 'ls ..\..' lists the grandparent folder. Cc: Michael D Kinney Cc: Liming Gao Cc: Ruiyu Ni Cc: Jaben Carsey Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Westfahl --- MdePkg/Library/BaseLib/FilePaths.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/MdePkg/Library/BaseLib/FilePaths.c b/MdePkg/Library/BaseLib/Fi= lePaths.c index 203045c..bbaf140 100644 --- a/MdePkg/Library/BaseLib/FilePaths.c +++ b/MdePkg/Library/BaseLib/FilePaths.c @@ -37,9 +37,7 @@ PathRemoveLastItem( ; Walker !=3D NULL && *Walker !=3D CHAR_NULL ; Walker++ ){ - if (*Walker =3D=3D L'\\' && *(Walker + 1) !=3D CHAR_NULL) { - LastSlash =3D Walker+1; - } else if (*Walker =3D=3D L':' && *(Walker + 1) !=3D L'\\' && *(Walker= + 1) !=3D CHAR_NULL) { + if ((*Walker =3D=3D L'\\' || *Walker =3D=3D L':') && *(Walker + 1) != =3D L'\\' && *(Walker + 1) !=3D CHAR_NULL) { LastSlash =3D Walker+1; } } --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel