shell32: fix infinite loop in SHGetPathFromIDListW
wine-devel at kievinfo.com
Sat Jun 25 08:36:41 CDT 2005
Thank you. This patch does fix the infinite loop bug.
Saturday, June 25, 2005, 5:14:27, Michael Jung wrote:
> With a seemingly unrelated change in his local tree Vigaliy Margolen triggered
> an infinite loop in SHGetPathFromIDList (which was introduced by one of my
> SHGetPathFromIDList (pidl.c:1256) calls SHBindToParent, which calls
Desktop->>BindToObject (pidl.c:1315), which calls SHELL32_BindToChild
> (shfldr_desktop.c:348), which binds to MyComputer (shlfolder.c:289) and then
calls MyComputer->>BindToObject (shlfolder.c:314), which calls
> SHELL32_BindToChild (shfldr_mycomp.c:346), which calls
> SHELL32_GetCustomFolderAttribute (shlfolder.c:299), which calls
> SHGetPathFromIDList (shlfolder.c:91). Phew.
> Since the path is already known in SHELL32_BindToChild, we can break the loop
> I don't understand, why we don't see a stack overflow with wine cvs, but the
> size of a +shell log shrinks 90% with this patch applied compared to cvs. So
> we do have the loop, but it is terminated somehow before the stack overflows.
> Fix a lurking infinite loop in SHGetPathFromIDList.
More information about the wine-devel