summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/libyaml
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-08 22:51:41 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-08 22:51:41 +0200
commit1219bf8a90a7bf8cd3a5363551ef635d51e8fc8e (patch)
treea21a5fc103bb3bd65ecd85ed22be5228fc54e447 /meta-oe/recipes-support/libyaml
downloadmeta-openembedded-1219bf8a90a7bf8cd3a5363551ef635d51e8fc8e.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta-oe/recipes-support/libyaml')
-rw-r--r--meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch42
-rw-r--r--meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb21
2 files changed, 63 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch b/meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch
new file mode 100644
index 000000000..2fdcba3ec
--- /dev/null
+++ b/meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch
@@ -0,0 +1,42 @@
1Heap-based buffer overflow in the yaml_parser_scan_uri_escapes function
2in LibYAML before 0.1.6 allows context-dependent attackers to execute
3arbitrary code via a long sequence of percent-encoded characters in a
4URI in a YAML file.
5
6Upstream-Status: Backport
7
8Signed-off-by: Kai Kang <kai.kang@windriver.com>
9---
10diff --git a/src/scanner.c.old b/src/scanner.c
11index a2e8619..c6cde3b 100644
12--- a/src/scanner.c.old
13+++ b/src/scanner.c
14@@ -2619,6 +2619,9 @@ yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive,
15 /* Check if it is a URI-escape sequence. */
16
17 if (CHECK(parser->buffer, '%')) {
18+ if (!STRING_EXTEND(parser, string))
19+ goto error;
20+
21 if (!yaml_parser_scan_uri_escapes(parser,
22 directive, start_mark, &string)) goto error;
23 }
24diff --git a/src/yaml_private.h.old b/src/yaml_private.h
25index ed5ea66..d72acb4 100644
26--- a/src/yaml_private.h.old
27+++ b/src/yaml_private.h
28@@ -132,9 +132,12 @@ yaml_string_join(
29 (string).start = (string).pointer = (string).end = 0)
30
31 #define STRING_EXTEND(context,string) \
32- (((string).pointer+5 < (string).end) \
33+ ((((string).pointer+5 < (string).end) \
34 || yaml_string_extend(&(string).start, \
35- &(string).pointer, &(string).end))
36+ &(string).pointer, &(string).end)) ? \
37+ 1 : \
38+ ((context)->error = YAML_MEMORY_ERROR, \
39+ 0))
40
41 #define CLEAR(context,string) \
42 ((string).pointer = (string).start, \
diff --git a/meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb b/meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb
new file mode 100644
index 000000000..127954196
--- /dev/null
+++ b/meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb
@@ -0,0 +1,21 @@
1SUMMARY = "LibYAML is a YAML 1.1 parser and emitter written in C."
2DESCRIPTION = "LibYAML is a C library for parsing and emitting data in YAML 1.1, \
3a human-readable data serialization format. "
4HOMEPAGE = "http://pyyaml.org/wiki/LibYAML"
5SECTION = "libs/devel"
6
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
9
10SRC_URI = "http://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz \
11 file://libyaml-CVE-2014-2525.patch \
12 "
13
14SRC_URI[md5sum] = "24f6093c1e840ca5df2eb09291a1dbf1"
15SRC_URI[sha256sum] = "fa87ee8fb7b936ec04457bc044cd561155e1000a4d25029867752e543c2d3bef"
16
17S = "${WORKDIR}/yaml-${PV}"
18
19inherit autotools
20
21BBCLASSEXTEND = "native"