We fail to set the streamData to 0 and if we are unable to read all that we want from the stream then we proceed with uninitialize data. changelog: Initialize streamData and check on failure to read desired data from stream -aric
Index: dlls/comctl32/comctl32undoc.c =================================================================== RCS file: /home/wine/wine/dlls/comctl32/comctl32undoc.c,v retrieving revision 1.55 diff -u -u -r1.55 comctl32undoc.c --- dlls/comctl32/comctl32undoc.c 2002/01/15 20:43:05 1.55 +++ dlls/comctl32/comctl32undoc.c 2002/01/18 13:37:27 @@ -93,6 +93,11 @@ position.s.LowPart = 0; position.s.HighPart = 0; + /* + * Zero out our streamData + */ + memset(&streamData,0,sizeof(STREAMDATA)); + errCode = IStream_Seek (pStream, position, STREAM_SEEK_CUR, &newPosition); if (errCode != S_OK) return errCode; @@ -104,7 +109,8 @@ FIXME ("dwSize=%lu dwData2=%lu dwItems=%lu\n", streamData.dwSize, streamData.dwData2, streamData.dwItems); - if (lParam < sizeof(STREAMDATA) || + if ( ulRead < sizeof(STREAMDATA) || + lParam < sizeof(STREAMDATA) || streamData.dwSize < sizeof(STREAMDATA) || streamData.dwData2 < 1) { errCode = E_FAIL;