Hi

while experimenting with SSL protocol extensions I think I found a newly
introduced bug. In fact there was a fault in an if-statement for a long
time and now it has been corrected. But I think the code is not compilant
with the SSL-3.0 spec, which reads:

"Forward compatibility note:
   In the interesst of forward compatibility, it is permitted for a client
   hello message to include extra data after the compression methods. This
   data must be included in the handshake hashes, but must otherwise be
   ignored."



The code segment earlier looked like the following:
(=> the second if statement evaluated never to true)

---------- ssl/s3_srvr.c ---------
  /* TLS does not mind if there is extra stuff */
  if (s->version == SSL3_VERSION)
    {
    if (p > (d+n))
      {
      /* wrong number of bytes,
       * there could be more to follow */
      al=SSL_AD_DECODE_ERROR;
      SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_LENGTH_MISMATCH);
      goto f_err;
      }
    }
----------------------------------


The actual code segment looks like the following:


---------- ssl/s3_srvr.c ---------
  /* TLS does not mind if there is extra stuff */
  if (s->version == SSL3_VERSION)
    {
    if (p < (d+n))
      {
      /* wrong number of bytes,
       * there could be more to follow */
       al=SSL_AD_DECODE_ERROR;
       SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_LENGTH_MISMATCH);
       goto f_err;
       }
     }
----------------------------------


I think the whole code segment should be deleted.


regards

Matthias

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to