- remove g_list first,
unexpected remove_message_all function within callback free list item first.
so that, FREE after callback cause double free.
Signed-off-by: SeokHoon Lee <andy.shlee@samsung.com>
Change-Id: I28790e0d64daa3ecf3de79208d742ec6234041e7
Name: libmm-streamrecorder
Summary: Media Stream Recorder library
Name: libmm-streamrecorder
Summary: Media Stream Recorder library
Release: 0
Group: Multimedia/Other
License: Apache-2.0
Release: 0
Group: Multimedia/Other
License: Apache-2.0
goto MSG_CALLBACK_DONE;
}
goto MSG_CALLBACK_DONE;
}
+ _MMSTREAMRECORDER_LOCK((MMHandleType) hstreamrecorder);
+ if (hstreamrecorder->msg_data)
+ hstreamrecorder->msg_data = g_list_remove(hstreamrecorder->msg_data, item);
+
+ _MMSTREAMRECORDER_UNLOCK((MMHandleType) hstreamrecorder);
+
/* _mmstreamrec_dbg_log("msg id:%x, msg_cb:%p, msg_data:%p, item:%p", item->id, hstreamrecorder->msg_cb, hstreamrecorder->msg_data, item); */
_MMSTREAMRECORDER_LOCK_MESSAGE_CALLBACK(hstreamrecorder);
/* _mmstreamrec_dbg_log("msg id:%x, msg_cb:%p, msg_data:%p, item:%p", item->id, hstreamrecorder->msg_cb, hstreamrecorder->msg_data, item); */
_MMSTREAMRECORDER_LOCK_MESSAGE_CALLBACK(hstreamrecorder);
_MMSTREAMRECORDER_UNLOCK_MESSAGE_CALLBACK(hstreamrecorder);
_MMSTREAMRECORDER_UNLOCK_MESSAGE_CALLBACK(hstreamrecorder);
- _MMSTREAMRECORDER_LOCK((MMHandleType) hstreamrecorder);
- if (hstreamrecorder->msg_data)
- hstreamrecorder->msg_data = g_list_remove(hstreamrecorder->msg_data, item);
-
- _MMSTREAMRECORDER_UNLOCK((MMHandleType) hstreamrecorder);
-
MSG_CALLBACK_DONE:
/* release allocated memory */
if (item->id == MM_MESSAGE_STREAMRECORDER_VIDEO_CAPTURED ||
MSG_CALLBACK_DONE:
/* release allocated memory */
if (item->id == MM_MESSAGE_STREAMRECORDER_VIDEO_CAPTURED ||