Fix wrong handling of session ID in SSLv2 client code.
authorLutz Jänicke <jaenicke@openssl.org>
Sun, 29 Dec 2002 20:59:35 +0000 (20:59 +0000)
committerLutz Jänicke <jaenicke@openssl.org>
Sun, 29 Dec 2002 20:59:35 +0000 (20:59 +0000)
PR: 377

CHANGES
ssl/s2_clnt.c

diff --git a/CHANGES b/CHANGES
index 0922acb..38e81e8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -352,6 +352,15 @@ TODO: bug: pad  x  with leading zeros if necessary
  
  Changes between 0.9.6h and 0.9.7  [XX xxx 2002]
 
+  *) Fix session ID handling in SSLv2 client code: the SERVER FINISHED
+     code (06) was taken as the first octet of the session ID and the last
+     octet was ignored consequently. As a result SSLv2 client side session
+     caching could not have worked due to the session ID mismatch between
+     client and server.
+     Behaviour observed by Crispin Flowerday <crispin@flowerday.cx> as
+     PR #377.
+     [Lutz Jaenicke]
+
   *) Change the declaration of needed Kerberos libraries to use EX_LIBS
      instead of the special (and badly supported) LIBKRB5.  LIBKRB5 is
      removed entirely.
index 0bc04d2..c6319bb 100644 (file)
@@ -1014,7 +1014,7 @@ static int get_server_finished(SSL *s)
                 * or bad things can happen */
                /* ZZZZZZZZZZZZZ */
                s->session->session_id_length=SSL2_SSL_SESSION_ID_LENGTH;
-               memcpy(s->session->session_id,p,SSL2_SSL_SESSION_ID_LENGTH);
+               memcpy(s->session->session_id,p+1,SSL2_SSL_SESSION_ID_LENGTH);
                }
        else
                {