Microsoft KB Archive/153963

= FIX: Exception in DrawCli When Displaying Summary Information =

Article ID: 153963

Article Last Modified on 12/2/2003

-

APPLIES TO


 * Microsoft Visual C++ 4.0 Standard Edition
 * Microsoft Visual C++ 4.1 Subscription
 * Microsoft Visual C++ 4.2 Enterprise Edition
 * Microsoft Visual C++ 4.2 Professional Edition

-



This article was previously published under Q153963



SYMPTOMS
When displaying the Summary Info for an existing DrawCli file with Summary Info saved, DrawCli may crash with the following error:

Unhandled Exception : Access Violation

DrawCli is an MFC OLE sample that is shipped with Visual C++.



CAUSE
CSummInfo::ReadFromStorage does not set CSummInfo::m_pSection. This behavior leaves a dangling pointer into memory that has been deleted.



RESOLUTION
Modify the ReadFromStorage as follows: BOOL CSummInfo::ReadFromStorage( LPSTORAGE lpRootStg ) {      if (lpRootStg != NULL) {          LPSTREAM lpStream = NULL;

if (FAILED(lpRootStg->OpenStream( szSummInfo,                     NULL, STGM_SHARE_EXCLUSIVE|STGM_READ,                      0, &lpStream ))) {              TRACE(_T("OpenStream failed\n")); return FALSE; }          else {              if (!m_propSet.ReadFromStream( lpStream )) {                  TRACE(_T("ReadFromStream failed\n")); return FALSE; }  // add the following line m_pSection = m_propSet.GetSection(FMTID_SummaryInformation);

lpStream->Release; return TRUE; }      }       return FALSE; }



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ version 4.2.

Additional query words: kbVC400bug 4.00 4.10 4.20 mfcole vcfixlist420 kbole CodeSam

Keywords: kbbug kbfix KB153963

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.