mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
srtpdec: Don't crash on invalid cipher
This commit is contained in:
parent
329c250a41
commit
4b89870a58
2 changed files with 12 additions and 1 deletions
|
@ -96,6 +96,8 @@ enum_nick_from_value (GType enum_gtype, gint value)
|
|||
return NULL;
|
||||
|
||||
enum_value = g_enum_get_value (enum_class, value);
|
||||
if (!enum_value)
|
||||
return NULL;
|
||||
nick = enum_value->value_nick;
|
||||
g_type_class_unref (enum_class);
|
||||
|
||||
|
@ -111,9 +113,11 @@ enum_value_from_nick (GType enum_gtype, const gchar * nick)
|
|||
gint value;
|
||||
|
||||
if (!enum_gtype)
|
||||
return 0;
|
||||
return -1;
|
||||
|
||||
enum_value = g_enum_get_value_by_nick (enum_class, nick);
|
||||
if (!enum_value)
|
||||
return -1;
|
||||
value = enum_value->value;
|
||||
g_type_class_unref (enum_class);
|
||||
|
||||
|
|
|
@ -410,6 +410,13 @@ get_stream_from_caps (GstSrtpDec * filter, GstCaps * caps, guint32 ssrc)
|
|||
rtcp_cipher);
|
||||
stream->rtcp_auth = enum_value_from_nick (GST_TYPE_SRTP_AUTH_TYPE, rtcp_auth);
|
||||
|
||||
if (stream->rtp_cipher == -1 || stream->rtp_auth == -1 ||
|
||||
stream->rtcp_cipher == -1 || stream->rtcp_auth == -1) {
|
||||
GST_WARNING_OBJECT (filter, "Invalid caps for stream,"
|
||||
" unknown cipher or auth type");
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (stream->rtcp_cipher != NULL_CIPHER && stream->rtcp_auth == NULL_AUTH) {
|
||||
GST_WARNING_OBJECT (filter,
|
||||
"Cannot have SRTP NULL authentication with a not-NULL encryption"
|
||||
|
|
Loading…
Reference in a new issue