Commit eae2bb2f authored by Matt Caswell's avatar Matt Caswell
Browse files

Fix memory leak in s2_srvr.c if BUF_MEM_grow fails



Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
Reviewed-by: default avatarKurt Roeckx <kurt@openssl.org>
(cherry picked from commit d04a1e0b)
parent c3132708
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -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; }
			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;