Fix memory leak.

Always perform nexproto callback argument initialisation in s_server
otherwise we use uninitialised data if -nocert is specified.
This commit is contained in:
Dr. Stephen Henson 2012-07-03 16:36:10 +00:00
parent 4dc40f5eec
commit 25da47c3c8
2 changed files with 19 additions and 16 deletions

View file

@ -1890,6 +1890,10 @@ end:
print_stuff(bio_c_out,con,1);
SSL_free(con);
}
#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG)
if (next_proto.data)
OPENSSL_free(next_proto.data);
#endif
if (ctx != NULL) SSL_CTX_free(ctx);
if (cert)
X509_free(cert);

View file

@ -1431,25 +1431,24 @@ bad:
goto end;
}
}
# ifndef OPENSSL_NO_NEXTPROTONEG
if (next_proto_neg_in)
{
unsigned short len;
next_proto.data = next_protos_parse(&len,
next_proto_neg_in);
if (next_proto.data == NULL)
goto end;
next_proto.len = len;
}
else
{
next_proto.data = NULL;
}
# endif
#endif
}
#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG)
if (next_proto_neg_in)
{
unsigned short len;
next_proto.data = next_protos_parse(&len, next_proto_neg_in);
if (next_proto.data == NULL)
goto end;
next_proto.len = len;
}
else
{
next_proto.data = NULL;
}
#endif
if (s_dcert_file)
{