Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-35284

IEnumConnections->Next method crashes if optional pointer to the number of fetched items is not provided

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P4: Low
    • 5.2.1
    • 5.1.1
    • ActiveX Support
    • None
    • Win32, VS2012
    • qtactiveqt: 0d29579baffd4f31a3ec39590117f4fee821694d (5.2.1, stable, 9.12.2013) Qt: 4: 3bef845f4623e0edcd52ddcffee3612f4f7f6779 (20.12.2013, 4.8.6)

    Description

      IEnumConnections->Next method crashes if optional pointer to a number of fetched items in not provided. According to the specification if only one element is requested, the third parameter of the Next method is optional.

      void crash6( IQTCrashPtr qtObject )
      {
      	IConnectionPointPtr connectionPoint;
      	IConnectionPointContainerPtr( qtObject )->FindConnectionPoint( __uuidof( IQTCrashEvents ), &connectionPoint );
      
      	IEnumConnectionsPtr connections;
      	connectionPoint->EnumConnections( &connections );
      
      	CONNECTDATA connectionData = { 0, 0 };
      	while( connections->Next( 1, &connectionData, 0 ) == S_OK) // crash here
      	{
      		if( connectionData.pUnk )
      			connectionData.pUnk->Release();
      	}
      }
      

      Example project demonstrating the error is attached

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              kleint Friedemann Kleint
              sbk Sergey Korepanov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes