Resolve memory related and unreachable code issue 45/224845/7 accepted/tizen/unified/20200225.224359 submit/tizen/20200224.125121
authorHyunsoo Park <hance.park@samsung.com>
Thu, 13 Feb 2020 11:07:13 +0000 (20:07 +0900)
committerHyunsoo Park <hance.park@samsung.com>
Fri, 14 Feb 2020 08:15:54 +0000 (17:15 +0900)
Change-Id: Id93d689e9f4766e9db1a90f7d046c9cad0f90f69
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
packaging/gst-plugins-tizen.spec
waylandsrc/src/gstwaylandsrc.c
wfdmanager/wfdbase/gstwfdsinkmessage.c
wfdmanager/wfdbase/gstwfdsinkmessage.h
wfdtsdemux/wfdtsdemux.c

index e0b1aae..2582490 100644 (file)
@@ -5,7 +5,7 @@
 Name:       gst-plugins-tizen
 Version:    1.0.0
 Summary:    GStreamer tizen plugins (common)
-Release:    97
+Release:    98
 Group:      Multimedia/Framework
 Url:        http://gstreamer.freedesktop.org/
 License:    LGPL-2.1+
index 7f382f6..0973c46 100644 (file)
@@ -584,7 +584,7 @@ destroy_buffer (struct output_buffer *obuffer)
     munmap (obuffer->data, obuffer->size);
 
   wl_list_remove (&obuffer->link);
-  free (obuffer);
+  g_free (obuffer);
 }
 
 static struct output_buffer *
index 85be43d..e4d1bb3 100644 (file)
@@ -971,11 +971,11 @@ gst_wfd_parse_line(GstWFDMessage *msg, gchar *buffer)
         GST_WFD_SKIP_SPACE(v);
         if (msg->display_edid->edid_block_count) {
           gchar *edid_string = v;
-          int i = 0, j = 0, size = 0;
+          guint32 i = 0, j = 0, msg_size = 0;
           guint32 payload_size = EDID_BLOCK_SIZE * msg->display_edid->edid_block_count;
           msg->display_edid->edid_payload = g_malloc(payload_size);
-          size = EDID_BLOCK_SIZE * msg->display_edid->edid_block_count * 2;
-          for (; i < size; j++) {
+          msg_size = payload_size * 2;
+          for (; i < msg_size; j++) {
             int k = 0, kk = 0;
             if (edid_string[i] > 0x29 && edid_string[i] < 0x40) k = edid_string[i] - 48;
             else if (edid_string[i] > 0x60 && edid_string[i] < 0x67) k = edid_string[i] - 87;
@@ -989,7 +989,7 @@ gst_wfd_parse_line(GstWFDMessage *msg, gchar *buffer)
             i += 2;
           }
           /*memcpy(msg->display_edid->edid_payload, v, payload_size); */
-          v += (payload_size * 2);
+          v += msg_size;
         } else v += strlen(v);
       }
     }
index 3ff452f..350bae4 100644 (file)
@@ -416,7 +416,7 @@ typedef struct {
 
 typedef struct {
   guint edid_supported;
-  guint edid_block_count;
+  gushort edid_block_count;
   gchar *edid_payload;
 } GstWFDDisplayEdid;
 
index b55a8ac..f5893d0 100644 (file)
@@ -1624,11 +1624,9 @@ check_pending_buffers (GstWFDTSDemux * demux)
     guint64 firstval, lastval, ts;
 
     /* 3.1 Calculate the offset between current DTS and first DTS */
+    /* If we don't have any pending data, the offset is 0 for this stream */
     if (tmpstream->pending == NULL || tmpstream->state == PENDING_PACKET_EMPTY)
       continue;
-    /* If we don't have any pending data, the offset is 0 for this stream */
-    if (tmpstream->pending == NULL)
-      break;
     if (tmpstream->raw_dts != -1)
       lastval = tmpstream->raw_dts;
     else if (tmpstream->raw_pts != -1)