From: Hyunil Date: Mon, 19 Feb 2018 08:28:07 +0000 (+0900) Subject: Release argv used for gst_init_check() X-Git-Tag: submit/tizen/20180305.045352~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1a301e8793cadf82d6d21a61a06bd02adcf736fe;p=platform%2Fcore%2Fapi%2Fmediastreamer.git Release argv used for gst_init_check() Change-Id: Ifa9e3493bd230c186234e178215a8ee3acb55180 Signed-off-by: Hyunil --- diff --git a/src/media_streamer_gst.c b/src/media_streamer_gst.c index d323c5f..33fa1b6 100644 --- a/src/media_streamer_gst.c +++ b/src/media_streamer_gst.c @@ -2116,11 +2116,12 @@ static gboolean __ms_bus_cb(GstBus *bus, GstMessage *message, gpointer userdata) int __ms_pipeline_create(media_streamer_s *ms_streamer) { - GError *err = NULL; int ret = MEDIA_STREAMER_ERROR_NONE; int *argc = NULL; char **argv = NULL; + GError *err = NULL; gboolean gst_ret = 0; + int i = 0; ms_debug_fenter(); @@ -2132,9 +2133,10 @@ int __ms_pipeline_create(media_streamer_s *ms_streamer) return MEDIA_STREAMER_ERROR_INVALID_OPERATION; } + /* get argc(number of command line option), argc is always one widthout option */ *argc = 1; if (ms_streamer->ini.gst_args) - (*argc) += g_strv_length(ms_streamer->ini.gst_args); + (*argc) += g_strv_length(ms_streamer->ini.gst_args); /* default is "--gst-debug = 2 */ argv = (char **)calloc(*argc, sizeof(char*)); if (!argv) { @@ -2146,7 +2148,6 @@ int __ms_pipeline_create(media_streamer_s *ms_streamer) argv[0] = g_strdup("MediaStreamer"); if (ms_streamer->ini.gst_args) { - int i = 0; for ( ; ms_streamer->ini.gst_args[i]; ++i) { if (*argc <= i+1) { ms_error("need to check, prevent overrun"); @@ -2158,10 +2159,15 @@ int __ms_pipeline_create(media_streamer_s *ms_streamer) } gst_ret = gst_init_check(argc, &argv, &err); + /* Clean memory of gstreamer arguments*/ g_strfreev(ms_streamer->ini.gst_args); ms_streamer->ini.gst_args = NULL; - MS_SAFE_FREE(argv[0]); + + for (i = 1; i < *argc; i++) + argv[i] = NULL; + + MS_SAFE_GFREE(argv[0]); MS_SAFE_FREE(argv); MS_SAFE_FREE(argc);