View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001862 | Far Manager | _Common | public | 2011-08-25 09:21 | 2011-09-01 17:50 |
Reporter | Andrey_Karpov | Assigned To | DrKnS | ||
Priority | normal | Severity | minor | Reproducibility | unable to reproduce |
Status | closed | Resolution | fixed | ||
Platform | x64 | OS | Windows | OS Version | 7 |
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0001862: Статический анализ кода | ||||
Description | Я запустил анализатор PVS-Studio для проверки исходных кодов FAR 3. Ничего особенно интересного я не нашел. Но есть пара мест, которая видимо ошибочна. Приведу их ниже. Если хочется более внимательно изучить отчет PVS-Studio, то могу предоставить ключ ( http://www.viva64.com/ru/b/0092/ ). ---------------------------------------------------- V512 A call of the 'memset' function will lead to underflow of the buffer 'PInfo'. far filelist.cpp 672 __int64 FileList::VMProcess(int OpCode,void *vParam,__int64 iParam) { ... PluginInfo *PInfo=(PluginInfo *)vParam; memset(PInfo,0,sizeof(PInfo)); PInfo->StructSize=sizeof(PInfo); ... } Должно быть: memset(PInfo,0,sizeof(PluginInfo)); ---------------------------------------------------- V584 The 'FADC_ALLDISKS' value is present on both sides of the '==' operator. The expression is incorrect or it can be simplified. far findfile.cpp 3317 enum FINDASKDLGCOMBO { FADC_ALLDISKS, ... }; FindFiles::FindFiles() { ... if (FADC_ALLDISKS+SearchMode==FADC_ALLDISKS || FADC_ALLDISKS+SearchMode==FADC_ALLBUTNET) ... } Странное: FADC_ALLDISKS+SearchMode==FADC_ALLDISKS. Можно упросить до: SearchMode == 0. ---------------------------------------------------- V576 Incorrect format. Consider checking the third actual argument of the 'fwprintf' function. The argument is expected to be not greater than 32-bit. far syslog.cpp 1943 struct PanelViewSettings { unsigned __int64 ColumnType[PANEL_COLUMNCOUNT]; ... }; void PanelViewSettings_Dump(...) { ... fwprintf(fp,L"%d, ",ViewSettings.ColumnType[I]); ... } Работает, так как везет (у функции только один аргумент). Но лучше поправить. И здесь: V576 Incorrect format. Consider checking the third actual argument of the 'fwprintf' function. The argument is expected to be not greater than 32-bit. far syslog.cpp 1945 V576 Incorrect format. Consider checking the third actual argument of the 'fwprintf' function. The argument is expected to be not greater than 32-bit. far syslog.cpp 1956 V576 Incorrect format. Consider checking the third actual argument of the 'fwprintf' function. The argument is expected to be not greater than 32-bit. far syslog.cpp 1958 ---------------------------------------------------- V579 The memset function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the third argument. far treelist.hpp 66 struct TreeItem { int *Last; size_t LastCount; ... void Clear() { strName.Clear(); memset(Last,0,sizeof(Last)); Depth=0; } }; Должно быть: memset(Last,0,sizeof(LastCount*sizeof(int))); ---------------------------------------------------- | ||||
Tags | No tags attached. | ||||
Build | 2169 | ||||
|
ключ стоит попросить, но в момент когда по ощущениям Far3 будет готов к public. а то ключ всего на месяц -)) |
|
build 2169. Спасибо за анализ. От ключа не откажемся, но, действительно, чуть позже :) |
|
Можно и дольше. Тем более, что стоит попробовать Incremental Analysis, а не разовую проверку. Попробуйте, надеюсь, вам понравится. Подробнее на эту тему: http://habrahabr.ru/blogs/code_review/124611/ На сколько месяцев вы хотите ключ, и на какое количество людей? |
|
На двоих, срок - на ваше усмотрение. |
|
Напишите мне на karpov[@]viva64.com ваши имена, фамилии и e-mail. |
|
Отправил. |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-08-25 09:21 | Andrey_Karpov | New Issue | |
2011-08-25 09:44 | sonar | Note Added: 0007522 | |
2011-08-25 09:52 | DrKnS | Note Added: 0007523 | |
2011-08-25 09:52 | DrKnS | Assigned To | => DrKnS |
2011-08-25 09:52 | DrKnS | Status | new => feedback |
2011-08-25 11:08 | Andrey_Karpov | Note Added: 0007524 | |
2011-08-25 11:08 | Andrey_Karpov | Status | feedback => assigned |
2011-08-25 20:44 | DrKnS | Note Added: 0007535 | |
2011-08-26 06:31 | Andrey_Karpov | Note Added: 0007540 | |
2011-08-26 08:11 | DrKnS | Note Added: 0007541 | |
2011-09-01 17:50 | DrKnS | Build | => 2169 |
2011-09-01 17:50 | DrKnS | Status | assigned => closed |
2011-09-01 17:50 | DrKnS | Resolution | open => fixed |
2011-09-01 17:50 | DrKnS | Fixed in Version | => 3.0 |