View Issue Details

IDProjectCategoryView StatusLast Update
0000395Far Manager_Commonpublic2008-04-20 05:13
Reporteralexmitin Assigned Toalexy  
PrioritynormalSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.80 alpha 1 
Summary0000395: Crash in UnicodeString::Format()
DescriptionFile: UnicodeString.cpp
Line: 219
Function: UnicodeString::Format()
Context:
do{
  Size <<= 1;
  buffer = (wchar_t*)xf_realloc (buffer, Size*sizeof (wchar_t));
=[crash]=> retValue = _vsnwprintf ( buffer, Size, format, argptr );
} while ( retValue == -1 );

Stack:
 60 Far.exe!_vsnwprintf(unsigned short * string=0x00000000, unsigned int count=520, const wchar_t * format=0x00538258, char * ap=0x0012f860)
*61 Far.exe!UnicodeString::Format(const wchar_t * format=0x00538258, ...)
 62 Far.exe!SetFarTitle(const wchar_t * Title=0x03bb6fd0)
 63 Far.exe!FileList::SetTitle()
 64 Far.exe!FileList::SetFocus()
 65 Far.exe!FileList::ProcessMouse(_MOUSE_EVENT_RECORD * MouseEvent=0x03a0cfe8)
 66 Far.exe!FilePanels::ProcessMouse(_MOUSE_EVENT_RECORD * MouseEvent=0x03a0cfe8)
 67 Far.exe!Manager::ProcessMouse(_MOUSE_EVENT_RECORD * MouseEvent=0x03a0cfe8)
 68 Far.exe!Manager::ProcessMainLoop()
 69 Far.exe!Manager::EnterMainLoop()
 70 Far.exe!MainProcess(const wchar_t * lpwszEditName=0x02f30fd0, const wchar_t * lpwszViewName=0x02f34fd0, const wchar_t * lpwszDestName1=0x02f38fd0, const wchar_t * lpwszDestName2=0x02f3cfd0, int StartLine=-1, int StartChar=-1, int RegOpt=0)
 71 Far.exe!wmain(int Argc=1, wchar_t * * Argv=0x02ddef88)
 72 Far.exe!__tmainCRTStartup()
 73 Far.exe!wmainCRTStartup()
 74 kernel32.dll!_BaseProcessStart@4()

The value of the variables are the following:
buffer = NULL
Size = 520
format = "%.256s%s"

function SetFarTitle()
strFarTitle.Format (L"%.256s%s", Title, FarTitleAddons);

Title = "{C:\!SHAREDDOCS}"
FarTitleAddons = " - Far"
Additional InformationFAR 1.80.0.368
TagsNo tags attached.
Build474

Activities

alexy

2007-12-02 05:09

administrator   bugnote:0000912

А как ты добился того что память закончилась?

alexmitin

2007-12-02 10:07

reporter   bugnote:0000916

Используя Application Verifier:
http://www.microsoft.com/downloads/details.aspx?familyid=bd02c19c-1250-433c-8c1b-2619bd93b3a2&displaylang=en

1) Запускаешь Application Verifier
2) File/Add Application, выбираешь полный путь к FAR.exe (я выбирал debug версию)
3) Настройка: Low Resource Simulation.
4) Запускаешь FAR под Visual Studio 2005 debugger

Application Verifier эмитирует нехватку памяти (и других ресурсов) для выбранного приложения. Этот инструмент конечно и много других ситуаций может сэмулировать. Смотри список Tests справа и Properties внизу для каждого test.

alexy

2007-12-02 10:38

administrator   bugnote:0000917

Сразу надо говорить :) Как я уже сказал в другом тикете, такие места не интересны пока что, тут даже если и проверку добавить все ровно ничего хорошого не выйдет. В идеале конечно такое надо чинить, но в текущее время это пока что не реально.

alexy

2008-03-25 14:09

administrator   bugnote:0001427

fixed. 460.
Не знаю тока скока от этого пользы конечно.

alexmitin

2008-04-02 01:08

reporter   bugnote:0001468

Если длина результирующей строки (после форматирования) равна 520 (MAX_PATH*2), то _vsnwprintf не добавит в конце '\0'.

Смотри Remarks по ссылке:
http://msdn2.microsoft.com/en-us/library/1kt27hek(VS.80).aspx

Дальнейший вызов SetData(buffer) и StrLength() приведут к buffer overrun.

alexy

2008-04-05 14:07

administrator   bugnote:0001472

fixed. 474.

Issue History

Date Modified Username Field Change
2007-12-01 21:00 alexmitin New Issue
2007-12-02 05:09 alexy Note Added: 0000912
2007-12-02 10:07 alexmitin Note Added: 0000916
2007-12-02 10:38 alexy Note Added: 0000917
2007-12-02 10:38 alexy Project Far Manager => Known Error
2008-03-22 14:28 alexy Status new => assigned
2008-03-22 14:28 alexy Assigned To => alexy
2008-03-25 13:26 alexy Project Known Error => Far Manager
2008-03-25 14:09 alexy Note Added: 0001427
2008-03-25 14:09 alexy Status assigned => feedback
2008-04-02 01:08 alexmitin Note Added: 0001468
2008-04-05 14:07 alexy Note Added: 0001472
2008-04-05 14:08 alexy Category User Menu => _Common
2008-04-20 05:13 alexy Build => 474
2008-04-20 05:13 alexy Status feedback => closed
2008-04-20 05:13 alexy Resolution open => fixed
2008-04-20 05:13 alexy Fixed in Version => 1.80 alpha 1