Tweaks for comments due to indent's inability to handle them
[openssl.git] / ssl / s2_srvr.c
index bc885e8e7f6dbc440001b025d8a3315df759152b..b33a74e373d612f707a268e701e437a95216352d 100644 (file)
@@ -188,13 +188,21 @@ int ssl2_accept(SSL *s)
                        s->version=SSL2_VERSION;
                        s->type=SSL_ST_ACCEPT;
 
-                       buf=s->init_buf;
-                       if ((buf == NULL) && ((buf=BUF_MEM_new()) == NULL))
-                               { ret= -1; goto end; }
-                       if (!BUF_MEM_grow(buf,(int)
-                               SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER))
-                               { ret= -1; goto end; }
-                       s->init_buf=buf;
+                       if(s->init_buf == NULL)
+                               {
+                               if ((buf=BUF_MEM_new()) == NULL)
+                                       {
+                                       ret= -1;
+                                       goto end;
+                                       }
+                               if (!BUF_MEM_grow(buf,(int) SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER))
+                                       {
+                                       BUF_MEM_free(buf);
+                                       ret= -1;
+                                       goto end;
+                                       }
+                               s->init_buf=buf;
+                               }
                        s->init_num=0;
                        s->ctx->stats.sess_accept++;
                        s->handshake_func=ssl2_accept;
@@ -434,7 +442,10 @@ static int get_client_master_key(SSL *s)
        i = ssl2_read(s,(char *)&(p[s->init_num]),n);
        if (i != n) return(ssl2_part_read(s,SSL_F_GET_CLIENT_MASTER_KEY,i));
        if (s->msg_callback)
-               s->msg_callback(0, s->version, 0, p, (size_t)len, s, s->msg_callback_arg); /* CLIENT-MASTER-KEY */
+               {
+               /* CLIENT-MASTER-KEY */
+               s->msg_callback(0, s->version, 0, p, (size_t)len, s, s->msg_callback_arg);
+               }
        p += 10;
 
        memcpy(s->session->key_arg,&(p[s->s2->tmp.clear+s->s2->tmp.enc]),
@@ -583,7 +594,10 @@ static int get_client_hello(SSL *s)
        i = ssl2_read(s,(char *)&(p[s->init_num]),n);
        if (i != n) return(ssl2_part_read(s,SSL_F_GET_CLIENT_HELLO,i));
        if (s->msg_callback)
-               s->msg_callback(0, s->version, 0, p, (size_t)len, s, s->msg_callback_arg); /* CLIENT-HELLO */
+               {
+               /* CLIENT-HELLO */
+               s->msg_callback(0, s->version, 0, p, (size_t)len, s, s->msg_callback_arg);
+               }
        p += 9;
 
        /* get session-id before cipher stuff so we can get out session
@@ -856,7 +870,10 @@ static int get_client_finished(SSL *s)
                return(ssl2_part_read(s,SSL_F_GET_CLIENT_FINISHED,i));
                }
        if (s->msg_callback)
-               s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg); /* CLIENT-FINISHED */
+               {
+               /* CLIENT-FINISHED */
+               s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg);
+               }
        p += 1;
        if (memcmp(p,s->s2->conn_id,s->s2->conn_id_length) != 0)
                {
@@ -979,7 +996,10 @@ static int request_certificate(SSL *s)
                                }
 
                        if (s->msg_callback)
-                               s->msg_callback(0, s->version, 0, p, 3, s, s->msg_callback_arg); /* ERROR */
+                               {
+                               /* ERROR */
+                               s->msg_callback(0, s->version, 0, p, 3, s, s->msg_callback_arg);
+                               }
 
                        /* this is the one place where we can recover from an SSL 2.0 error */
 
@@ -1034,7 +1054,10 @@ static int request_certificate(SSL *s)
                goto end;
                }
        if (s->msg_callback)
-               s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg); /* CLIENT-CERTIFICATE */
+               {
+               /* CLIENT-CERTIFICATE */
+               s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg);
+               }
        p += 6;
 
        cp = p;
@@ -1059,10 +1082,12 @@ static int request_certificate(SSL *s)
                EVP_PKEY *pkey=NULL;
 
                EVP_MD_CTX_init(&ctx);
-               EVP_VerifyInit_ex(&ctx,s->ctx->rsa_md5, NULL);
-               EVP_VerifyUpdate(&ctx,s->s2->key_material,
-                                s->s2->key_material_length);
-               EVP_VerifyUpdate(&ctx,ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH);
+               if (!EVP_VerifyInit_ex(&ctx,s->ctx->rsa_md5, NULL)
+                   || !EVP_VerifyUpdate(&ctx,s->s2->key_material,
+                                        s->s2->key_material_length)
+                   || !EVP_VerifyUpdate(&ctx,ccd,
+                                        SSL2_MIN_CERT_CHALLENGE_LENGTH))
+                       goto msg_end;
 
                i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,NULL);
                buf2=OPENSSL_malloc((unsigned int)i);
@@ -1073,7 +1098,11 @@ static int request_certificate(SSL *s)
                        }
                p2=buf2;
                i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,&p2);
-               EVP_VerifyUpdate(&ctx,buf2,(unsigned int)i);
+               if (!EVP_VerifyUpdate(&ctx,buf2,(unsigned int)i))
+                       {
+                       OPENSSL_free(buf2);
+                       goto msg_end;
+                       }
                OPENSSL_free(buf2);
 
                pkey=X509_get_pubkey(x509);