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

P.S: this is a repost of a mail I sent to the openssl-dev list on 2003-03-25


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

Reply via email to