Index: cdfs/dirctl.c =================================================================== --- drivers/filesystems/cdfs/dirctl.c (revision 56950) +++ drivers/filesystems/cdfs/dirctl.c (working copy) @@ -586,7 +586,7 @@ Buffer = Irp->UserBuffer; } - if (SearchPattern != NULL) + if (SearchPattern != NULL && SearchPattern->Length > 0) { if (Ccb->DirectorySearchPattern.Buffer == NULL) { Index: fastfat/dir.c =================================================================== --- drivers/filesystems/fastfat/dir.c (revision 56950) +++ drivers/filesystems/fastfat/dir.c (working copy) @@ -345,7 +345,7 @@ #endif FileInformationClass = Stack->Parameters.QueryDirectory.FileInformationClass; - if (pSearchPattern) + if (pSearchPattern && pSearchPattern->Length > 0) { if (!pCcb->SearchPattern.Buffer) { @@ -359,7 +359,7 @@ } RtlCopyUnicodeString(&pCcb->SearchPattern, pSearchPattern); pCcb->SearchPattern.Buffer[pCcb->SearchPattern.Length / sizeof(WCHAR)] = 0; - } + } } else if (!pCcb->SearchPattern.Buffer) { @@ -410,34 +410,34 @@ case FileNameInformation: RC = VfatGetFileNameInformation (&DirContext, (PFILE_NAMES_INFORMATION) Buffer, - BufferLength); + BufferLength); break; case FileDirectoryInformation: RC = VfatGetFileDirectoryInformation (&DirContext, - IrpContext->DeviceExt, - (PFILE_DIRECTORY_INFORMATION) Buffer, - BufferLength); + IrpContext->DeviceExt, + (PFILE_DIRECTORY_INFORMATION) Buffer, + BufferLength); break; case FileFullDirectoryInformation: RC = VfatGetFileFullDirectoryInformation (&DirContext, - IrpContext->DeviceExt, - (PFILE_FULL_DIR_INFORMATION) Buffer, - BufferLength); + IrpContext->DeviceExt, + (PFILE_FULL_DIR_INFORMATION) Buffer, + BufferLength); break; case FileBothDirectoryInformation: RC = VfatGetFileBothInformation (&DirContext, - IrpContext->DeviceExt, - (PFILE_BOTH_DIR_INFORMATION) Buffer, - BufferLength); + IrpContext->DeviceExt, + (PFILE_BOTH_DIR_INFORMATION) Buffer, + BufferLength); break; default: RC = STATUS_INVALID_INFO_CLASS; - } + } if (RC == STATUS_BUFFER_OVERFLOW || RC == STATUS_INVALID_INFO_CLASS) { break; } - } + } else { if (FirstQuery) @@ -449,7 +449,7 @@ RC = STATUS_NO_MORE_FILES; } break; - } + } Buffer0 = (PFILE_NAMES_INFORMATION) Buffer; Buffer0->FileIndex = DirContext.DirIndex; pCcb->Entry = ++DirContext.DirIndex;