ShellPkg: fix 'ls' handling of empty drives where there is not even an "." or ".." directory.

Signed-off-by: jcarsey
Reviewed-by: winddy_zhang@byosoft.com.cn

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12981 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2012-02-02 16:55:30 +00:00
parent 66c44008ba
commit 74fa83fda6
3 changed files with 14 additions and 3 deletions

View File

@@ -66,14 +66,22 @@ PrintLsOutput(
CorrectedPath = NULL;
CorrectedPath = StrnCatGrow(&CorrectedPath, NULL, Path, 0);
ASSERT(CorrectedPath != NULL);
if (CorrectedPath == NULL) {
return (SHELL_OUT_OF_RESOURCES);
}
PathCleanUpDirectories(CorrectedPath);
Status = ShellOpenFileMetaArg((CHAR16*)CorrectedPath, EFI_FILE_MODE_READ, &ListHead);
if (EFI_ERROR(Status)) {
SHELL_FREE_NON_NULL(CorrectedPath);
if(Status == EFI_NOT_FOUND){
return (SHELL_NOT_FOUND);
}
return (SHELL_DEVICE_ERROR);
}
if (ListHead == NULL || IsListEmpty(&ListHead->Link)) {
SHELL_FREE_NON_NULL(CorrectedPath);
//
// On the first one only we expect to find something...
// do we find the . and .. directories otherwise?