In message <[email protected]> on Mon, 12 Mar 2012 
07:02:10 -0400, Neil Rieck <[email protected]> said:

n.rieck> Team,
n.rieck> 
n.rieck>   * A few weeks back, I discovered a problem with the command “OpenSSL 
s_client” which (I think)
n.rieck>     has been broken in VMS since 2006.
n.rieck>   * While I was only working with HP-specific OpenSSL source code kits 
available from the HP,  the
n.rieck>     problem still exists in the public sources available from your 
site.
n.rieck>   * I have posted my changes to file “s_client.c” here:
n.rieck>     
http://www3.sympatico.ca/n.rieck/docs/openvms_notes_ssl.html#s_client-fix

Glaring things, that (miss)handling of select() on VMS, isn't it (or
well, VMS really misshandles select(), but that's another story)?
Your fixes really don't catch it all, there's this piece of code that
really is an issue:

#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
                else if (_kbhit())
#else
                else if ((_kbhit()) || (WAIT_OBJECT_0 == 
WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
#endif
#elif defined (OPENSSL_SYS_NETWARE)
        else if (_kbhit())
#else
                else if (FD_ISSET(fileno(stdin),&readfds))
#endif

There's a fix in newer OpenSSL versions, with a variant for BeOS R5
that tries reading stdin in non-blocking mode to see if there's
anything there...  I'm just now seeing if that can be hijacked for VMS
as well, in that case I think we're good to go for a back port.

The first change (an extra \n) seem to be cosmetic only, or does it
actually change the function in a crutial way?  Considering you have
marked it optional, I'll guess that it doesn't?

Cheers,
Richard

-- 
Richard Levitte                         [email protected]
                                        http://richard.levitte.org/

"Life is a tremendous celebration - and I'm invited!"
-- from a friend's blog, translated from Swedish
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to