resolve svace issue 13/55813/1
authorEunhae Choi <eunhae1.choi@samsung.com>
Tue, 29 Dec 2015 11:25:46 +0000 (20:25 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Tue, 29 Dec 2015 11:25:46 +0000 (20:25 +0900)
Change-Id: I7eee5ab02641d4f5f9376088961384f18cc5a8b8

src/media_streamer_gst.c
src/media_streamer_util.c

index f35e038154a9d2f7b26f7fe8c789f396c6fbec93..d416f4d046cdcf44a4d55aac155445c5d3cab530 100755 (executable)
@@ -247,6 +247,11 @@ static gboolean __ms_pad_peer_unlink(GstPad * pad)
        gboolean ret = TRUE;
        GstPad *peer_pad = gst_pad_get_peer(pad);
 
+       if (!peer_pad) {
+               ms_error ("Fail to get peer pad");
+               return FALSE;
+       }
+
        if (GST_IS_PROXY_PAD(peer_pad)) {
 
                GstObject *ghost_object = gst_pad_get_parent(peer_pad);
@@ -254,6 +259,12 @@ static gboolean __ms_pad_peer_unlink(GstPad * pad)
                        GstPad *ghost_pad = GST_PAD(ghost_object);
                        GstPad *target_pad = gst_pad_get_peer(ghost_pad);
 
+                       if (!target_pad) {
+                               ms_error ("Fail to get peer pad");
+                               MS_SAFE_UNREF(peer_pad);
+                               return FALSE;
+                       }
+
                        if (GST_IS_GHOST_PAD(target_pad)) {
                                ret = ret && gst_element_remove_pad(GST_ELEMENT(GST_PAD_PARENT(target_pad)), target_pad);
                        } else {
@@ -282,10 +293,16 @@ static gboolean __ms_pad_peer_unlink(GstPad * pad)
 static GstElement *__ms_pad_get_peer_element(GstPad * pad)
 {
        if (!gst_pad_is_linked(pad)) {
-               ms_info("Pad [%s] of element [%s] is not linked yet", GST_PAD_NAME(pad), GST_ELEMENT_NAME(gst_pad_get_parent_element(pad)));
+               ms_info("Pad [%s:%s] is not linked yet", GST_DEBUG_PAD_NAME(pad));
                return NULL;
        }
+
        GstPad *peer_pad = gst_pad_get_peer(pad);
+       if (!peer_pad) {
+               ms_error ("Fail to get peer pad");
+               return NULL;
+       }
+
        GstElement *ret = gst_pad_get_parent_element(peer_pad);
        if (!ret) {
                if (GST_IS_PROXY_PAD(peer_pad)) {
@@ -450,6 +467,11 @@ static gboolean __ms_check_unlinked_element(GstElement * previous_elem, GstPad *
 
        GstElement *found_element = gst_pad_get_parent_element(found_elem_sink_pad);
 
+       if (!found_element) {
+               ms_error ("Fail to get parent element");
+               return ret;
+       }
+
        if (previous_elem) {
                /* Previous element is set. */
                if (prev_elem_src_pad) {
@@ -546,6 +568,11 @@ GstElement *__ms_bin_find_element_by_klass(GstElement * sink_bin, GstElement * p
                found_element = (GstElement *) g_value_get_object(&element_value);
                const gchar *found_klass = gst_element_factory_get_klass(gst_element_get_factory(found_element));
 
+               if (!found_element) {
+                       ms_error("Fail to get element from element value");
+                       return NULL;
+               }
+
                /* Check if found element is of appropriate needed plugin class */
                if ((klass_name && g_strrstr(found_klass, klass_name)) && (bin_name == NULL || g_strrstr(GST_ELEMENT_NAME(found_element), bin_name))) {
 
index aa53c6cab23ee58adfda1bd514dcdcce43ca115b..0fba520c1778302bb055e5cbd841c864fa7884a4 100644 (file)
@@ -201,6 +201,8 @@ void __ms_signal_create(GList ** sig_list, GstElement * obj, const char *sig_nam
                ms_debug("Signal [%s] with id[%lu] connected to object [%s].", sig_name, sig_data->signal_id, GST_OBJECT_NAME(sig_data->obj));
        } else {
                ms_error("Failed to connect signal [%s] for object [%s]", sig_name, GST_OBJECT_NAME(obj));
+               if (sig_data)
+                       g_free(sig_data);
        }
 }