Bug #5334
closedSegmentation fault in InternetExplorer IServiceProvider interface
Description
The following code causes a segmentation fault in Ruby 1.9.2:
require 'win32ole'
browser = WIN32OLE.new("InternetExplorer.Application")
provider = browser.ole_query_interface("{6D5140C1-7436-11CE-8034-00AA006009FA}")
provider.ole_obj_help
Updated by ko1 (Koichi Sasada) about 13 years ago
- Status changed from Open to Assigned
- Assignee set to arton (Akio Tajima)
Updated by mame (Yusuke Endoh) about 13 years ago
- Assignee changed from arton (Akio Tajima) to suke (Masaki Suketa)
Updated by phasis68 (Heesob Park) about 13 years ago
This segmentation fault raised at #4396 of win32ole.c
hr = pole->pDispatch->lpVtbl->GetTypeInfo( pole->pDispatch, 0, lcid, &pTypeInfo );
According to the document(http://msdn.microsoft.com/en-us/library/cc678965(v=vs.85).aspx),
the IServiceProvider interface has only one member, QueryService, through which a caller specifies the service ID (SID, a GUID), the IID of the interface to return, and the address of the caller's interface pointer variable.
The IServiceProvider interface does not have GetTypeInfo member function, so you cannot use WIN32OLE#ole_type or WIN32OLE#ole_obj_help which calls GetTypeInfo function.
It seems difficult to detect which interface has GetTypeInfo member function or not in the code level.
Updated by jeremyevans0 (Jeremy Evans) almost 2 years ago
- Status changed from Assigned to Closed