http://bugs.winehq.org/show_bug.cgi?id=4159
Summary: Regression: Wine Spins When Starting InstallShield Product: Wine Version: CVS Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: wine-ole AssignedTo: wine-bugs@winehq.org ReportedBy: selover@speakeasy.net
Prior to 0.9.4 it was possible to start the installation of the Garmin Trip and Waypoint Manager. Wine now spins before the installation starts.
I have isolated the cause of the problem. It is due to the change in dlls/ole32/storage32.c file, specifically the SmallBlockChainStream_ReadAt() function. The spin occurs in the first do/while loop in the function SmallBlocksToBigBlocks().
SmallBlockChainStream_ReadAt() function previously checked if the bytes read equal the requested bytes. The function was modified not to perform this check. Without the check the do loop in SmallBlocksToBigBlocks() never exits.
I corrected the problem by adding: if (size == 0) rc = E_FAIL; before the ending return in SmallBlockChainStream_ReadAt() function.