summaryrefslogtreecommitdiff
path: root/nonprism/grilo-plugins
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-05-21 10:30:59 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-05-21 10:30:59 -0300
commit3cc4685abd608cb86ac3beca4501a77e00c6d5be (patch)
treebb93d2906c9e9f39c46d237fb51bcd99123bac65 /nonprism/grilo-plugins
parentca2bfc0016e40140ecd692e4bfbbaf5ff97a2fb8 (diff)
grilo-plugins-0.2.14-4.nonprism1: More metadata crasher (FS#44724 -> https://bugs.archlinux.org/task/44724)
Diffstat (limited to 'nonprism/grilo-plugins')
-rw-r--r--nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch80
-rw-r--r--nonprism/grilo-plugins/PKGBUILD11
2 files changed, 87 insertions, 4 deletions
diff --git a/nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch b/nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch
new file mode 100644
index 000000000..dc7abbb52
--- /dev/null
+++ b/nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch
@@ -0,0 +1,80 @@
+From a05b159c330a7a65479bba35bc529d0934640627 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Tue, 19 May 2015 20:53:28 +0200
+Subject: [PATCH 2/2] local-metadata: Fixes to video_sanitise_string non-alnum
+ handling
+
+- Extract loop condition into a helper function
+- Use g_utf8_get_char to properly convert to unichar
+- Be more defensive about g_utf8_find_prev_char returning NULL
+
+https://bugzilla.gnome.org/show_bug.cgi?id=748604
+---
+ src/local-metadata/grl-local-metadata.c | 39 +++++++++++++++++++++++----------
+ 1 file changed, 28 insertions(+), 11 deletions(-)
+
+diff --git a/src/local-metadata/grl-local-metadata.c b/src/local-metadata/grl-local-metadata.c
+index 45856be..c7f731e 100644
+--- a/src/local-metadata/grl-local-metadata.c
++++ b/src/local-metadata/grl-local-metadata.c
+@@ -242,6 +242,28 @@ grl_local_metadata_source_set_property (GObject *object,
+
+ /* ======================= Utilities ==================== */
+
++static gboolean
++is_nonalnum (const gchar *str)
++{
++ gunichar uchar;
++
++ if (str == NULL) {
++ return FALSE;
++ }
++
++ uchar = g_utf8_get_char (str);
++
++ if (g_unichar_isalnum (uchar)) {
++ return FALSE;
++ }
++
++ if (uchar == '!' || uchar == '?' || uchar == '.') {
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
+ static gchar *
+ video_sanitise_string (const gchar *str)
+ {
+@@ -270,22 +292,17 @@ video_sanitise_string (const gchar *str)
+ }
+
+ if (*line_end != '\0') {
+- line_end = g_utf8_find_prev_char (line, line_end);
+-
++ /* After removing substring with blacklisted word, ignore non alpha-numeric
++ * char in the end of the sanitised string */
++ do {
++ line_end = g_utf8_find_prev_char (line, line_end);
++ } while (is_nonalnum (line_end));
+
+ /* If everything in the string is blacklisted, just ignore
+ * the blackisting logic.
+ */
+- if (line_end == NULL)
++ if (line_end == NULL) {
+ return g_strdup (str);
+-
+- /* After removing substring with blacklisted word, ignore non alpha-numeric
+- * char in the end of the sanitised string */
+- while (g_unichar_isalnum (*line_end) == FALSE &&
+- *line_end != '!' &&
+- *line_end != '?' &&
+- *line_end != '.') {
+- line_end = g_utf8_find_prev_char (line, line_end);
+ }
+
+ return g_strndup (line, line_end - line);
+--
+2.4.0
+
diff --git a/nonprism/grilo-plugins/PKGBUILD b/nonprism/grilo-plugins/PKGBUILD
index 2da00f4ae..020814d27 100644
--- a/nonprism/grilo-plugins/PKGBUILD
+++ b/nonprism/grilo-plugins/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 239495 2015-05-17 13:39:45Z heftig $
+# $Id: PKGBUILD 239561 2015-05-19 19:26:57Z heftig $
# Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=grilo-plugins
pkgver=0.2.14
-pkgrel=3.nonprism1
+pkgrel=4.nonprism1
pkgdesc="Plugins for Grilo, without libgdata support"
url="http://www.gnome.org"
arch=(i686 x86_64)
@@ -18,13 +18,16 @@ optdepends=('dleyna-server: DLNA plugin'
options=('!emptydirs')
groups=('gnome')
source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz
- local-metadata-crash.patch)
+ local-metadata-crash.patch
+ 0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch)
sha256sums=('d0f18116675058c7e8c178b1fe26d6d73998a0452f85a73b1696df740c83d3ab'
- '221f770b064309635b52095d21d325707d45de03772da5cc579252b7795ced1b')
+ '221f770b064309635b52095d21d325707d45de03772da5cc579252b7795ced1b'
+ 'f95343c6433d438c6d67dfe0cf81804a9a19db1744606279159c008fce289aa7')
prepare() {
cd $pkgname-$pkgver
patch -Np1 -i ../local-metadata-crash.patch
+ patch -Np1 -i ../0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch
}
build() {