srtpenc: prevent deadlock in create_session

Temporarily release the object lock which is needed to post error
messages on the bus.

https://bugzilla.gnome.org/show_bug.cgi?id=770933
This commit is contained in:
Philippe Normand 2016-09-06 11:02:06 +02:00
parent f5c547063c
commit 7fa2668adf

View file

@ -386,9 +386,11 @@ gst_srtp_enc_create_session (GstSrtpEnc * filter)
gsize keysize;
if (filter->key == NULL) {
GST_OBJECT_UNLOCK (filter);
GST_ELEMENT_ERROR (filter, LIBRARY, SETTINGS,
("Cipher is not NULL, key must be set"),
("Cipher is not NULL, key must be set"));
GST_OBJECT_LOCK (filter);
return err_status_fail;
}
@ -396,10 +398,12 @@ gst_srtp_enc_create_session (GstSrtpEnc * filter)
keysize = gst_buffer_get_size (filter->key);
if (expected != keysize) {
GST_OBJECT_UNLOCK (filter);
GST_ELEMENT_ERROR (filter, LIBRARY, SETTINGS,
("Master key size is wrong"),
("Expected master key of %d bytes, but received %" G_GSIZE_FORMAT
" bytes", expected, keysize));
GST_OBJECT_LOCK (filter);
return err_status_fail;
}
}