samiparse: crash on 64bit emulator
authorGilbok Lee <gilbok.lee@samsung.com>
Fri, 13 Jan 2017 04:35:55 +0000 (13:35 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Fri, 13 Jan 2017 04:36:01 +0000 (13:36 +0900)
clipped memory pointer during strcasestr

Change-Id: I1ae3b7eca16332224b36c212365b5435b49d101f

gst/subparse/samiparse.c
packaging/gst-plugins-base.spec

index c9eaea3..898028d 100644 (file)
@@ -70,6 +70,68 @@ struct _GstSamiContext
 #endif
 };
 
+#ifdef TIZEN_FEATURE_SUBPARSE_MODIFICATION
+#define strcasestr _gst_ascii_strcasestr
+
+/* From https://github.com/freebsd/freebsd/blob/master/contrib/file/src/strcasestr.c
+ * Updated to use GLib types and GLib string functions
+ *
+ * Copyright (c) 1990, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Find the first occurrence of find in s, ignore case.
+ */
+
+static gchar *
+_gst_ascii_strcasestr (const gchar * s, const gchar * find)
+{
+  gchar c, sc;
+  gsize len;
+
+  if ((c = *find++) != 0) {
+    c = g_ascii_tolower (c);
+    len = strlen (find);
+    do {
+      do {
+        if ((sc = *s++) == 0)
+          return (NULL);
+      } while (g_ascii_tolower (sc) != c);
+    } while (g_ascii_strncasecmp (s, find, len) != 0);
+    s--;
+  }
+  return (gchar *) (gintptr) (s);
+}
+#endif
+
 struct _HtmlParser
 {
   void (*start_element) (HtmlContext * ctx,
index b2d805d..3383a39 100644 (file)
@@ -5,7 +5,7 @@
 
 Name:           gst-plugins-base
 Version:        1.6.1
-Release:        9
+Release:        10
 License:        LGPL-2.0+
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
 Url:            http://gstreamer.freedesktop.org/