* [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing '\' @ 2017-01-07 19:19 Michael Kinney 2017-01-09 15:42 ` Carsey, Jaben 0 siblings, 1 reply; 3+ messages in thread From: Michael Kinney @ 2017-01-07 19:19 UTC (permalink / raw) To: edk2-devel; +Cc: Ruiyu Ni, Jaben Carsey, Michael D Kinney https://bugzilla.tianocore.org/show_bug.cgi?id=331 If Nt32 is built using UEFI Shell from the ShellPkg sources, an ASSERT() is generated when a single '\' character is entered at the shell prompt. The WinNtSimpleFileSystemDxe module GetNextFileNameToken() function breaks a file path up into tokens, but it does not handle the case where a FileName ends in a '\' character. It returns an empty string instead of NULL. The fix is to set *FileName to NULL if the remaining file path is an empty string. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Jaben Carsey <jaben.carsey@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> --- Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c index 6cff2df..5bb5832 100644 --- a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c +++ b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c @@ -748,6 +748,12 @@ GetNextFileNameToken ( // Point *FileName to the next character after L'\'. // *FileName = *FileName + Offset + 1; + // + // If *FileName is an empty string, then set *FileName to NULL + // + if (**FileName == L'\0') { + *FileName = NULL; + } } return Token; -- 2.6.3.windows.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing '\' 2017-01-07 19:19 [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing '\' Michael Kinney @ 2017-01-09 15:42 ` Carsey, Jaben 2017-01-10 1:55 ` Ni, Ruiyu 0 siblings, 1 reply; 3+ messages in thread From: Carsey, Jaben @ 2017-01-09 15:42 UTC (permalink / raw) To: Kinney, Michael D, edk2-devel@lists.01.org; +Cc: Ni, Ruiyu, Carsey, Jaben Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> > -----Original Message----- > From: Kinney, Michael D > Sent: Saturday, January 7, 2017 11:19 AM > To: edk2-devel@lists.01.org > Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Carsey, Jaben <jaben.carsey@intel.com>; > Kinney, Michael D <michael.d.kinney@intel.com> > Subject: [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing '\' > Importance: High > > https://bugzilla.tianocore.org/show_bug.cgi?id=331 > > If Nt32 is built using UEFI Shell from the ShellPkg sources, an ASSERT() is > generated when a single '\' character is entered at the shell prompt. > > The WinNtSimpleFileSystemDxe module GetNextFileNameToken() function > breaks a file path up into tokens, but it does not handle the case where a > FileName ends in a '\' character. > It returns an empty string instead of NULL. The fix is to set *FileName to NULL if > the remaining file path is an empty string. > > Cc: Ruiyu Ni <ruiyu.ni@intel.com> > Cc: Jaben Carsey <jaben.carsey@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > --- > Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > index 6cff2df..5bb5832 100644 > --- a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > +++ b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > @@ -748,6 +748,12 @@ GetNextFileNameToken ( > // Point *FileName to the next character after L'\'. > // > *FileName = *FileName + Offset + 1; > + // > + // If *FileName is an empty string, then set *FileName to NULL > + // > + if (**FileName == L'\0') { > + *FileName = NULL; > + } > } > > return Token; > -- > 2.6.3.windows.1 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing '\' 2017-01-09 15:42 ` Carsey, Jaben @ 2017-01-10 1:55 ` Ni, Ruiyu 0 siblings, 0 replies; 3+ messages in thread From: Ni, Ruiyu @ 2017-01-10 1:55 UTC (permalink / raw) To: Carsey, Jaben, Kinney, Michael D, edk2-devel@lists.01.org Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Thanks/Ray > -----Original Message----- > From: Carsey, Jaben > Sent: Monday, January 9, 2017 11:42 PM > To: Kinney, Michael D <michael.d.kinney@intel.com>; edk2- > devel@lists.01.org > Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Carsey, Jaben <jaben.carsey@intel.com> > Subject: RE: [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() > parsing '\' > > Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> > > > -----Original Message----- > > From: Kinney, Michael D > > Sent: Saturday, January 7, 2017 11:19 AM > > To: edk2-devel@lists.01.org > > Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Carsey, Jaben > > <jaben.carsey@intel.com>; Kinney, Michael D > > <michael.d.kinney@intel.com> > > Subject: [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing > '\' > > Importance: High > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=331 > > > > If Nt32 is built using UEFI Shell from the ShellPkg sources, an > > ASSERT() is generated when a single '\' character is entered at the shell > prompt. > > > > The WinNtSimpleFileSystemDxe module GetNextFileNameToken() > function > > breaks a file path up into tokens, but it does not handle the case > > where a FileName ends in a '\' character. > > It returns an empty string instead of NULL. The fix is to set > > *FileName to NULL if the remaining file path is an empty string. > > > > Cc: Ruiyu Ni <ruiyu.ni@intel.com> > > Cc: Jaben Carsey <jaben.carsey@intel.com> > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > > --- > > Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c | 6 > ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > > b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > > index 6cff2df..5bb5832 100644 > > --- a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > > +++ b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c > > @@ -748,6 +748,12 @@ GetNextFileNameToken ( > > // Point *FileName to the next character after L'\'. > > // > > *FileName = *FileName + Offset + 1; > > + // > > + // If *FileName is an empty string, then set *FileName to NULL > > + // > > + if (**FileName == L'\0') { > > + *FileName = NULL; > > + } > > } > > > > return Token; > > -- > > 2.6.3.windows.1 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-01-10 1:55 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-01-07 19:19 [Patch] Nt32Pkg/WinNtSimpleFileSystemDxe: Fix ASSERT() parsing '\' Michael Kinney 2017-01-09 15:42 ` Carsey, Jaben 2017-01-10 1:55 ` Ni, Ruiyu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox