При попытке выполнить команду cd на диске ClearCase (на таком диске работает виртуальная файловая система со своим драйвером), если в качестве параметра по ошибке указано имя файла вместо имени каталога, винда (7 sp1) валится в синий экран.
Крэш происходит в функции FindFirstFileInternal, когда выполняется NtQueryDirectoryFile с параметром FileName = L"*" на "каталоге" (напомню, это на самом деле файл), открытом перед этим через CreateFile. Уж не знаю, зачем эти телодвижения делаются именно так, но вот если бы этой операции можно было избежать...
Писать багрепорт IBM'у не предлагать: никакое действие штатными средствами винды, никакая команда из cmd систему не валит. А даже если допустить, что они исправят - нынешняя версия у меня на работе есть корпоративная данность, не факт, что новую дадут скоро установить.
Синий экран с ClearCase
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Синий экран с ClearCase
Что-то вы не договариваете.
Ок,
Far дописал
FindFirstFileInternal извлёк из переданного пути папку методом обрезания
CreateFile не умеет открывать файлы со слешем на конце, поэтому често вернул INVALID_HANDLE_VALUE и поставил last error в 0x0000007b - ERROR_INVALID_NAME : The filename, directory name, or volume label syntax is incorrect.
На этом всё и завершилось, до NtQueryDirectoryFile не дошло.
Ок,
cd c:\windows\explorer.exe
Far дописал
\*
и передал c:\windows\explorer.exe\*
в FindFirstFileInternal.FindFirstFileInternal извлёк из переданного пути папку методом обрезания
*
и передал c:\windows\explorer.exe\
(в конце слеш) в CreateFile.CreateFile не умеет открывать файлы со слешем на конце, поэтому често вернул INVALID_HANDLE_VALUE и поставил last error в 0x0000007b - ERROR_INVALID_NAME : The filename, directory name, or volume label syntax is incorrect.
На этом всё и завершилось, до NtQueryDirectoryFile не дошло.
Синий экран с ClearCase
Возможно, под ClearCase CreateFile умеет "открывать" такие папки, я завтра на работе проверю.DrKnS wrote:Что-то вы не договариваете.
CreateFile не умеет открывать файлы со слешем на конце,
Last edited by yms on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан оверквотинг
Reason: Спрятан оверквотинг
Синий экран с ClearCase
Емнип, CreateFile вообще мало чего "умеет" сама. Это, по сути, диспетчер запросов к низлежащим слоям OS FS API. Это я к тому что таки да - пишите репорт в IBM. Раньше напишете - раньше пофиксят. А не через десять лет, как обычно.