Submitted by: Eric Rescorla <ekr@rtfm.com>
Further fixes for use_srtp extension.
This commit is contained in:
parent
69e9c69e70
commit
d40abf1689
@ -406,7 +406,7 @@ int ssl_add_serverhello_use_srtp_ext(SSL *s, unsigned char *p, int *len, int max
|
|||||||
{
|
{
|
||||||
if(p)
|
if(p)
|
||||||
{
|
{
|
||||||
if(maxlen < 3)
|
if(maxlen < 5)
|
||||||
{
|
{
|
||||||
SSLerr(SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT,SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG);
|
SSLerr(SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT,SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG);
|
||||||
return 1;
|
return 1;
|
||||||
@ -417,11 +417,11 @@ int ssl_add_serverhello_use_srtp_ext(SSL *s, unsigned char *p, int *len, int max
|
|||||||
SSLerr(SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT,SSL_R_USE_SRTP_NOT_NEGOTIATED);
|
SSLerr(SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT,SSL_R_USE_SRTP_NOT_NEGOTIATED);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
s2n(2, p);
|
||||||
s2n(s->srtp_profile->id,p);
|
s2n(s->srtp_profile->id,p);
|
||||||
*p++ = 0;
|
*p++ = 0;
|
||||||
}
|
}
|
||||||
*len=3;
|
*len=5;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -431,10 +431,20 @@ int ssl_parse_serverhello_use_srtp_ext(SSL *s, unsigned char *d, int len,int *al
|
|||||||
{
|
{
|
||||||
unsigned id;
|
unsigned id;
|
||||||
int i;
|
int i;
|
||||||
|
int ct;
|
||||||
|
|
||||||
STACK_OF(SRTP_PROTECTION_PROFILE) *clnt;
|
STACK_OF(SRTP_PROTECTION_PROFILE) *clnt;
|
||||||
SRTP_PROTECTION_PROFILE *prof;
|
SRTP_PROTECTION_PROFILE *prof;
|
||||||
|
|
||||||
if(len!=3)
|
if(len!=5)
|
||||||
|
{
|
||||||
|
SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT,SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST);
|
||||||
|
*al=SSL_AD_DECODE_ERROR;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
n2s(d, ct);
|
||||||
|
if(ct!=2)
|
||||||
{
|
{
|
||||||
SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT,SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST);
|
SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT,SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST);
|
||||||
*al=SSL_AD_DECODE_ERROR;
|
*al=SSL_AD_DECODE_ERROR;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user