[openssl-dev] Changing/deleted ordinals for exported function in the Windows DLLs

Jeffrey Walton noloader at gmail.com
Sun Mar 27 10:09:39 UTC 2016


It looks like ordinals are changing and/or being removed for functions
exported by the Windows DLL. Its causing pain points for users in the
field, and it appears to be trending. Confer:

 * WAMP OpenSSL ordinal 372 error, http://stackoverflow.com/q/36238887
 * The Ordinal 112 could not be located in dynamic link library…,
http://stackoverflow.com/q/36163468

I think ordinals were meant to speed up loading of shared resources in
the 16-bit Windows days. They fell out of favor circa Windows 95.
According to Jeffrey Richter and in his book Programming Applications
for Microsoft Windows, page 701 (http://www.amazon.com/dp/1572319968):

    The second form [of the function GetProcAddress]  ...
    [and the] pszSymbolName parameter indicates the
    ordinal number of the symbol whose address you
    want...

    Again, let me reiterate that Microsoft strongly
    discourages the use of ordinals.

Richter then goes on to discuss getting the wrong function address
because ordinals have changed.

It seems like the changes should have been caught in the engineering
process during QA or testing. Perhaps an explicit step should be added
to avoid the problems in the future?


More information about the openssl-dev mailing list