summaryrefslogtreecommitdiffstats
path: root/abs/core/libid3tag/11_unknown_encoding.diff
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2012-08-07 14:57:31 (GMT)
committerJames Meyer <james.meyer@operamail.com>2012-08-07 14:57:31 (GMT)
commit356f47550a1d05cd1115e186a6816d614bbf8eeb (patch)
tree7d18aa942f4fb19a8e307a643f3b7bfdbb4c0fe4 /abs/core/libid3tag/11_unknown_encoding.diff
parent3599272b7174dfa23c0633d5a63cd2c83f94211e (diff)
downloadlinhes_pkgbuild-356f47550a1d05cd1115e186a6816d614bbf8eeb.zip
linhes_pkgbuild-356f47550a1d05cd1115e186a6816d614bbf8eeb.tar.gz
linhes_pkgbuild-356f47550a1d05cd1115e186a6816d614bbf8eeb.tar.bz2
libid3tag .15.1b
Diffstat (limited to 'abs/core/libid3tag/11_unknown_encoding.diff')
-rw-r--r--abs/core/libid3tag/11_unknown_encoding.diff37
1 files changed, 37 insertions, 0 deletions
diff --git a/abs/core/libid3tag/11_unknown_encoding.diff b/abs/core/libid3tag/11_unknown_encoding.diff
new file mode 100644
index 0000000..7387f2f
--- /dev/null
+++ b/abs/core/libid3tag/11_unknown_encoding.diff
@@ -0,0 +1,37 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 11_unknown_encoding.dpatch by Andreas Henriksson <andreas@fatal.se>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: In case of an unknown/invalid encoding, id3_parse_string() will
+## DP: return NULL, but the return value wasn't checked resulting
+## DP: in segfault in id3_ucs4_length(). This is the only place
+## DP: the return value wasn't checked.
+
+@DPATCH@
+diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf
+--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000
++++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000
+@@ -236,6 +236,10 @@
+
+ encoding = id3_parse_uint(&data, 1);
+ string = id3_parse_string(&data, end - data, encoding, 0);
++ if (!string)
++ {
++ continue;
++ }
+
+ if (id3_ucs4_length(string) < 4) {
+ free(string);
+diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c
+--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000
++++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000
+@@ -165,6 +165,9 @@
+ case ID3_FIELD_TEXTENCODING_UTF_8:
+ ucs4 = id3_utf8_deserialize(ptr, length);
+ break;
++ default:
++ /* FIXME: Unknown encoding! Print warning? */
++ return NULL;
+ }
+
+ if (ucs4 && !full) {