View Issue Details

IDProjectCategoryView StatusLast Update
0000580Far Manager 1.7xCommand Line/Executepublic2008-11-20 00:06
ReporterArimanAssigned Toalexy 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version1.71 
Summary0000580: Некоректный перебор расширений при запуске команды.
DescriptionСитуация:
- в каталоге есть подкаталог x.bat
- в том же каталоге есть файл x.exe
- при запуске с командной строки команды x произойдет попытка запуска каталога как программы, т.к. расширение bat имеет приоритет при переборе, а атрибут каталога не проверяется.
Стандартный интерпритатор cmd ситуацию обрабатывает нормально - запускает x.exe.
Патч прилагается.
TagsNo tags attached.
Build2461

Activities

2008-08-19 12:46

 

far_execute_fix_2.diff (582 bytes)
Index: unicode_far/execute.cpp
===================================================================
--- unicode_far/execute.cpp	(revision 1919)
+++ unicode_far/execute.cpp	(working copy)
@@ -470,7 +470,8 @@
       if (!PtrFName)
         strWorkName += PtrExt;
 
-      if(GetFileAttributesW(strWorkName) != INVALID_FILE_ATTRIBUTES)
+	  DWORD dwFileAttr = GetFileAttributesW(strWorkName);
+	  if ((dwFileAttr != INVALID_FILE_ATTRIBUTES) && (dwFileAttr & FILE_ATTRIBUTE_DIRECTORY == 0))
       {
         ConvertNameToFull (strWorkName, strFullName);
         Ret=TRUE;

Ariman

2008-08-19 12:46

reporter   bugnote:0001751

Правильный патч тот, что с цифрой 2. Первый вариант некорректный.

alexy

2008-11-16 17:25

administrator   bugnote:0001962

В 581.
Ты в CONTRIBUTORS уже записан? Если нет то говори как тебя там записывать.

Denis

2008-11-16 17:34

reporter   bugnote:0001963

execute.cpp(474) : warning C4554: '&' : check operator precedence for possible error; use parentheses to clarify precedence

Похоже, что всё-таки ошибка в коде:
============================================
if ((dwFileAttr != INVALID_FILE_ATTRIBUTES) && (dwFileAttr & FILE_ATTRIBUTE_DIRECTORY == 0))
============================================

alexy

2008-11-16 17:39

administrator   bugnote:0001964

исправил, 582

Ariman

2008-11-17 11:49

reporter   bugnote:0001972

2alexy. Спасибо, но я уже есть в CONTRIBUTORS.

alexy

2008-11-20 00:06

administrator   bugnote:0001997

заодно исправил в 1.71, билд 2461

Issue History

Date Modified Username Field Change
2008-08-01 04:54 Ariman New Issue
2008-08-01 04:54 Ariman Status new => assigned
2008-08-01 04:54 Ariman Assigned To => alexy
2008-08-01 04:54 Ariman File Added: far_execute_fix.diff
2008-08-19 12:46 Ariman File Added: far_execute_fix_2.diff
2008-08-19 12:46 Ariman Note Added: 0001751
2008-08-20 05:17 zg File Deleted: far_execute_fix.diff
2008-11-16 17:25 alexy Note Added: 0001962
2008-11-16 17:34 Denis Note Added: 0001963
2008-11-16 17:39 alexy Note Added: 0001964
2008-11-16 17:39 alexy Status assigned => feedback
2008-11-17 11:49 Ariman Note Added: 0001972
2008-11-19 23:43 alexy Project Far Manager 1.7x => Far Manager
2008-11-20 00:05 alexy Project Far Manager => Far Manager 1.7x
2008-11-20 00:06 alexy Build => 2461
2008-11-20 00:06 alexy Note Added: 0001997
2008-11-20 00:06 alexy Status feedback => closed
2008-11-20 00:06 alexy Resolution open => fixed
2008-11-20 00:06 alexy Fixed in Version => 1.71