GNOME Bugzilla – Bug 784967
omx: Possible deadlock in gstomxaudioenc
Last modified: 2017-07-25 08:50:08 UTC
Hello All, There is possible deadlock in gstomxaudioenc.c File : gst-omx/omx/gstomxaudioenc.c In function "gst_omx_audio_enc_drain" at line: 1154 There if g_mutex_lock (&self->drain_lock) at line: 1145 but incase of fails of gst_omx_port_release_buffer Threre is no unlock of self->drain_lock. below are snippet err = gst_omx_port_release_buffer (self->enc_in_port, buf); if (err != OMX_ErrorNone) { GST_ERROR_OBJECT (self, "Failed to drain component: %s (0x%08x)", gst_omx_error_to_string (err), err); GST_AUDIO_ENCODER_STREAM_LOCK (self); return GST_FLOW_ERROR; } Solution: There should be g_mutex_unlock (&self->drain_lock) in failure case; Please check and provide your feedback.
This is correct, do you want to provide a patch ?
yes ... I am preparing a patch for it.. soon I will upload it.
Created attachment 355740 [details] [review] Patch is attched Hi All, Please review attached patch and provide your feedback.
commit 9db720f13efaba8f8798e2796dba66e7a6c0f29a Author: Satya Prakash Gupta <sp.gupta@samsung.com> Date: Mon Jul 17 13:44:54 2017 +0530 omxaudioenc: Fix deadlock in error case when draining https://bugzilla.gnome.org/show_bug.cgi?id=784967