View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000414 | Far Manager | Editor | public | 2007-12-04 21:14 | 2007-12-12 14:21 |
Reporter | alexmitin | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Fixed in Version | 1.80 alpha 1 | ||||
Summary | 0000414: Handle leak in FileEditor::LoadFile() | ||||
Description | File: fileedit.cpp Line: 1490 Function: FileEditor::LoadFile() Context: int FileEditor::LoadFile(const wchar_t *Name,int &UserBreak) { ... HANDLE hEdit = apiCreateFile( ... int EditHandle=_open_osfhandle((intptr_t)hEdit,O_BINARY); if ( EditHandle == -1 ) return FALSE; <==[bug1]== if ( (EditFile=fdopen(EditHandle,"rb")) == NULL ) return FALSE; <==[bug2]== ... } Observations ============ 1) Bug1: If _open_osfhandle() returns -1 the "hEdit" file handle is not closed. 2) Bug2: If fdopen() returns NULL the "EditHandle" handle is not closed. The proposed fix: int EditHandle=_open_osfhandle((intptr_t)hEdit,O_BINARY); if ( EditHandle == -1 ) { CloseHandle(hEdit); // fix for bug1 return FALSE; } if ( (EditFile=fdopen(EditHandle,"rb")) == NULL ) { _close(EditFile); // fix for bug2 return FALSE; } | ||||
Additional Information | FAR 1.80.0.382 | ||||
Tags | No tags attached. | ||||
Build | 383 | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2007-12-04 21:14 | alexmitin | New Issue | |
2007-12-04 21:14 | alexmitin | Status | new => assigned |
2007-12-04 21:14 | alexmitin | Assigned To | => vskirdin |
2007-12-05 07:30 | vskirdin | Note Added: 0000955 | |
2007-12-05 07:30 | vskirdin | Status | assigned => feedback |
2007-12-12 12:02 | alexmitin | Status | feedback => resolved |
2007-12-12 12:02 | alexmitin | Resolution | open => fixed |
2007-12-12 12:02 | alexmitin | Note Added: 0001017 | |
2007-12-12 14:21 | vskirdin | Build | => 383 |
2007-12-12 14:21 | vskirdin | Status | resolved => closed |
2007-12-12 14:21 | vskirdin | Fixed in Version | => 1.80 alpha 1 |