[Bug 2848] New: possible memory leak in dlls/user/user16.c, function DragObject16
Wine Bugs
wine-bugs at winehq.org
Sun Apr 3 20:07:18 CDT 2005
http://bugs.winehq.org/show_bug.cgi?id=2848
Summary: possible memory leak in dlls/user/user16.c, function
DragObject16
Product: Wine
Version: 20050310
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: wine-gui
AssignedTo: wine-bugs at winehq.org
ReportedBy: kremenek at cs.stanford.edu
I am a research with the Stanford Checking group.
I am running some experiments on Wine using our static checking framework. Here
is a possible bug we found with our tool:
In file dlls/user/user16.c:
LINE 1162:
--> hBummer is assigned a pointer return from LoadCursorA. Because it
--> transitively loads an icon with the LR_SHARED flag, it returns an object
--> that has a reference count.
if (!(hBummer = LoadCursorA(0, MAKEINTRESOURCEA(OCR_NO))))
{
GlobalFree16(hDragInfo);
return 0L;
}
...
LINE: 1189
/* update DRAGINFO struct */
if( DRAG_QueryUpdate16(WIN_Handle32(hwndScope), spDragInfo) > 0 )
hCurrentCursor = HCURSOR_32(hCursor);
else
{
--> Here hBummer is assigned to hCurrentCursor. On the other branch, however,
--> it is not assigned and the value is never used assigned later.
hCurrentCursor = hBummer;
lpDragInfo->hScope = 0;
}
if( hCurrentCursor )
SetCursor(hCurrentCursor);
COMMENT: This appears to result in a memory leak, since a reference count
is incremented, even if the address in hBummer is never later stored. It
could be possible this is allocated from an arena; I cannot tell. I am
not very familiar with the Wine codebase.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs
mailing list