View Issue Details

IDProjectCategoryView StatusLast Update
0000392Far ManagerPlugins API.Old API Wrapperpublic2007-12-01 07:07
ReporterSten Assigned Toalexy  
PrioritynormalSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.80 alpha 1 
Summary0000392: Некорректная обработка DI_EDIT и DI_FIXEDIT в AnsiDialogItemToUnicode()
DescriptionВ функции AnsiDialogItemToUnicode() есть такие строчки:

case DI_EDIT:
case DI_FIXEDIT:
    {
        if (diA->Flags&oldfar::DIF_HISTORY)
            di->Param.History=AnsiToUnicode(diA->Param.History);
        else if (diA->Flags&oldfar::DIF_MASKEDIT)
            di->Param.Mask=AnsiToUnicode(diA->Param.Mask);
    }
    break;

Для diA->Param.History и diA->Param.Mask всегда вызывается AnsiToUnicode() если установлены соответствующие флаги. Однако, согласно спецификации:
http://api.farmanager.com/ru/dialogapi/controls/di_fixedit.html
Эти поля могут быть равны NULL, что приводит к эксепшну внутри AnsiToUnicode().

А аттаче патч, который фиксит данную проблему.
Additional InformationНапример, эксепшн возникает если установлен плагин MultiArc (с патчем wrap.cpp из предыдущего дефекта), при нажатии Shift-F1.
TagsNo tags attached.
Build367

Activities

2007-12-01 06:50

 

patch2.diff (566 bytes)   
Index: wrap.cpp
===================================================================
--- wrap.cpp	(revision 1335)
+++ wrap.cpp	(working copy)
@@ -761,9 +761,9 @@
 		case DI_EDIT:
 		case DI_FIXEDIT:
 			{
-				if (diA->Flags&oldfar::DIF_HISTORY)
+				if (diA->Flags&oldfar::DIF_HISTORY && diA->Param.History)
 					di->Param.History=AnsiToUnicode(diA->Param.History);
-				else if (diA->Flags&oldfar::DIF_MASKEDIT)
+				else if (diA->Flags&oldfar::DIF_MASKEDIT && diA->Param.Mask)
 					di->Param.Mask=AnsiToUnicode(diA->Param.Mask);
 			}
 			break;
patch2.diff (566 bytes)   

alexy

2007-12-01 07:07

administrator   bugnote:0000895

367

Issue History

Date Modified Username Field Change
2007-12-01 06:50 Sten New Issue
2007-12-01 06:50 Sten Status new => assigned
2007-12-01 06:50 Sten Assigned To => alexy
2007-12-01 06:50 Sten File Added: patch2.diff
2007-12-01 07:07 alexy Build => 367
2007-12-01 07:07 alexy Status assigned => closed
2007-12-01 07:07 alexy Note Added: 0000895
2007-12-01 07:07 alexy Resolution open => fixed
2007-12-01 07:07 alexy Fixed in Version => 1.80 alpha 1