Hi Sean,

We experienced a crash of opensm in win8.
The core reason for the crash was that WinMad driver has not started for some 
reason.
So libibumad couldn't work.
But it had a bug in error flow which caused an access violation.

I bring here two quotes of umad_open_port() function with my comments:

// umad_open_port

...
                hr = WmGetObject(IID_IWMProvider, (LPVOID*) 
&ports[portid].prov);
                if (FAILED(hr)) {
                                CloseHandle(ports[portid].overlap.hEvent);
                                portid = GetLastError() & 0x80000000;
                                goto out;
                }
                // if there is no providers WmGetObject will return error, but 
portid wil be set to 0
                // We saw it when GetLastError() returned 6. Maybe you mean it 
to be HRESULT_FROM_WIN32(GetLastError()) ?

                // As a result umad_open_port() returns 0, i.e. SUCCESS which 
causes later an access violation.


_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to