Access violation may occur in CoDisconnectObject (819575)



The information in this article applies to:

  • Microsoft COM+ 1.5, when used with:
    • the operating system: Microsoft Windows XP
  • Microsoft COM+ 1.0, when used with:
    • the operating system: Microsoft Windows 2000

SYMPTOMS

When you call the CoDisconnectObject function, an access violation may occur. The access violation may include the following call stack:
ChildEBP   RetAddr             
0339fe88 72e83904 ole32!CoDisconnectObject+0xa9 
0339ff80 780060ce  RPCClie!CClientInstance::ClientInstanceThreadProc+0x6e0 
0339ffb4 77e787dd  MSVCRT!_threadstartex+0x5f 
0339ffec 00000000  KERNEL32!BaseThreadStart+0x52

RESOLUTION

How to obtain the hotfix

Windows 2000

This issue is fixed in the Microsoft Windows 2000 Post-Service Pack 4 (SP4) COM+ 1.0 Hotfix Package 27. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

822618 INFO: Availability of Windows 2000 Post-Service Pack 4 COM+ Hotfix Rollup Package 27

Windows XP

This issue is fixed in the Microsoft Windows XP COM+ Hotfix Rollup Package 9. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

895200 Availability of the Windows XP COM+ Hotfix Rollup Package 9

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

The CoDisconnectObject function should not generate an access violation if there are still outstanding function calls on the objects that are disconnected. In this situation, CoDisconnectObject should return CO_E_OBJECTNOTCONNECTED instead so that any existing calls are permitted to finish, and any new calls will not be processed.

Modification Type:MajorLast Reviewed:4/4/2005
Keywords:kbWinXPpreSP3fix kbQFE kbfix kbbug kbWin2000preSP5fix KB819575 kbAudDeveloper