mirror of
https://github.com/yaml/libyaml
synced 2026-06-08 18:28:36 +00:00
Fixed heap overflow in yaml_parser_scan_uri_escapes (Thanks Ivan Fratric of the Google Security Team).
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@ project (yaml C)
|
||||
|
||||
set (YAML_VERSION_MAJOR 0)
|
||||
set (YAML_VERSION_MINOR 1)
|
||||
set (YAML_VERSION_PATCH 4)
|
||||
set (YAML_VERSION_PATCH 6)
|
||||
set (YAML_VERSION_STRING "${YAML_VERSION_MAJOR}.${YAML_VERSION_MINOR}.${YAML_VERSION_PATCH}")
|
||||
|
||||
file (GLOB SRC src/*.c)
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
# Define the package version numbers and the bug reporting link.
|
||||
m4_define([YAML_MAJOR], 0)
|
||||
m4_define([YAML_MINOR], 1)
|
||||
m4_define([YAML_PATCH], 5)
|
||||
m4_define([YAML_PATCH], 6)
|
||||
m4_define([YAML_BUGS], [http://pyyaml.org/newticket?component=libyaml])
|
||||
|
||||
# Define the libtool version numbers; check the Autobook, Section 11.4.
|
||||
@@ -19,7 +19,7 @@ m4_define([YAML_BUGS], [http://pyyaml.org/newticket?component=libyaml])
|
||||
# YAML_AGE = 0
|
||||
m4_define([YAML_RELEASE], 0)
|
||||
m4_define([YAML_CURRENT], 2)
|
||||
m4_define([YAML_REVISION], 3)
|
||||
m4_define([YAML_REVISION], 4)
|
||||
m4_define([YAML_AGE], 0)
|
||||
|
||||
# Initialize autoconf & automake.
|
||||
|
||||
@@ -2629,6 +2629,9 @@ yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive,
|
||||
/* Check if it is a URI-escape sequence. */
|
||||
|
||||
if (CHECK(parser->buffer, '%')) {
|
||||
if (!STRING_EXTEND(parser, string))
|
||||
goto error;
|
||||
|
||||
if (!yaml_parser_scan_uri_escapes(parser,
|
||||
directive, start_mark, &string)) goto error;
|
||||
}
|
||||
|
||||
+5
-2
@@ -143,9 +143,12 @@ yaml_string_join(
|
||||
(string).start = (string).pointer = (string).end = 0)
|
||||
|
||||
#define STRING_EXTEND(context,string) \
|
||||
(((string).pointer+5 < (string).end) \
|
||||
((((string).pointer+5 < (string).end) \
|
||||
|| yaml_string_extend(&(string).start, \
|
||||
&(string).pointer, &(string).end))
|
||||
&(string).pointer, &(string).end)) ? \
|
||||
1 : \
|
||||
((context)->error = YAML_MEMORY_ERROR, \
|
||||
0))
|
||||
|
||||
#define CLEAR(context,string) \
|
||||
((string).pointer = (string).start, \
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
#define YAML_VERSION_MAJOR 0
|
||||
#define YAML_VERSION_MINOR 1
|
||||
#define YAML_VERSION_PATCH 5
|
||||
#define YAML_VERSION_STRING "0.1.5"
|
||||
#define YAML_VERSION_PATCH 6
|
||||
#define YAML_VERSION_STRING "0.1.6"
|
||||
|
||||
Reference in New Issue
Block a user