Microsoft KB Archive/301679

= FIX: Access Violation in IDBProperties::GetProperties When You Use OLE DB Service Components =

Article ID: 301679

Article Last Modified on 9/26/2005

-

APPLIES TO


 * Microsoft Data Access Components 2.5
 * Microsoft Data Access Components 2.6 Service Pack 1
 * Microsoft Data Access Components 2.6

-



This article was previously published under Q301679



SYMPTOMS
When a multithreaded application uses the OLE DB service components, if the application uses the same IDBProperties interface pointer to call the IDBProperties::GetProperties method simultaneously in two different threads, the call to GetProperties may fail with E_UNEXPECTED, or you may receive an access violation.

If you are using Microsoft Data Access Components (MDAC) 2.5 Service Pack 2 (SP2), an access violation occurs. If you are using MDAC 2.6 SP1, E_UNEXPECTED is returned. In both cases, the call succeeds because the interface supports multithreaded access.



MDAC 2.6 SP1
To resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

300635 INFO: How to Obtain the Latest MDAC 2.6 Service Pack

The MDAC 2.6 SP1 version of this fix should have the following file attributes:   Date         Version       Size     File name     Platform --  20-Jul-2001  2.61.7720.0   459,024  Oledb32.dll   x86

MDAC 2.5
To resolve this problem, obtain the latest service pack for Microsoft MDAC 2.5. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

293312INFO: How to Obtain the Latest MDAC 2.5 Service Pack

The MDAC 2.5 SP2 version of this fix should have the following file attributes:   Date         Version       Size     File name     Platform --  25-Jun-2001  2.52.7625.0   483,600  Oledb32.dll   x86



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft MDAC 2.5 Service Pack 3. This problem was first corrected in Microsoft Data Access Components 2.6 Service Pack 2.



MORE INFORMATION
If this problem occurs on a computer that has MDAC 2.5 SP2 installed, you receive the following crash stack in an attached debugger:

Access violation - code c0000005 (first chance) eax=00000000 ebx=00d25978 ecx=00d25978 edx=00000010 esi=041a58f0 edi=00d252f0 eip=6b7410f4 esp=0165fe14 ebp=0165fe24 iopl=0        nv up ei pl nz ac pe cy cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00010213 MSDART32!MpHeapFree+66: 6b7410f4 f00fb10e        lock    cmpxchg [esi],ecx ds:0023:041a58f0=????????

MSDART32!MpHeapFree+0x66 MSDART32!mpFree+0x16 oledb32!FreeMPMallocedPropSets+0x4c oledb32!CDBPROPContainer__ClearAllProperties+0xe oledb32!CDBProperties__GetProperties+0x10c oledb32!CDPO__UnlockedDCMGetProperties+0x48 oledb32!CDPO__GetProperties+0x32

Additional query words: multi-threaded AV

Keywords: kbbug kbfix kbqfe kbmdac260sp2fix kbmdac250sp3fix kbhotfixserver KB301679

-

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

© Microsoft Corporation. All rights reserved.