Hello community,

here is the log from the commit of package libyaml.2694 for 
openSUSE:12.3:Update checked in at 2014-04-09 18:04:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/libyaml.2694 (Old)
 and      /work/SRC/openSUSE:12.3:Update/.libyaml.2694.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libyaml.2694"

Changes:
--------
New Changes file:

--- /dev/null   2014-02-13 01:09:38.344032506 +0100
+++ /work/SRC/openSUSE:12.3:Update/.libyaml.2694.new/libyaml.changes    
2014-04-09 18:04:30.000000000 +0200
@@ -0,0 +1,33 @@
+-------------------------------------------------------------------
+Wed Mar 19 15:42:14 UTC 2014 - jmassaguer...@suse.com
+
+- fix CVE-2014-2525: libyaml: heap overflow during parsing (bnc#868944)
+
+- added patches:
+  * CVE-2014-2525.patch
+-------------------------------------------------------------------
+Fri Mar  7 16:42:40 UTC 2014 - jmassaguer...@suse.com
+
+- fix regression introduced by the patch. see
+  https://bugzilla.novell.com/show_bug.cgi?id=860617#c17 
+
+- modified patches:
+  * CVE-2013-6393.patch
+-------------------------------------------------------------------
+Fri Feb  7 14:11:39 UTC 2014 - jmassaguer...@suse.com
+
+- fix CVE-2013-6393: libyaml: heap based buffer, overflow due to
+  integer misuse, bnc#860617
+
+- added patches:
+  * CVE-2013-6393.patch
+-------------------------------------------------------------------
+Wed Feb  9 19:05:55 UTC 2011 - pascal.ble...@opensuse.org
+
+- fixed erroneous license from GPLv2 to MIT, bnc#670525
+
+-------------------------------------------------------------------
+Tue Apr  6 22:55:47 UTC 2010 - mrueck...@suse.de
+
+- initial package of version 0.1.3
+

New:
----
  CVE-2013-6393.patch
  CVE-2014-2525.patch
  libyaml.changes
  libyaml.spec
  yaml-0.1.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libyaml.spec ++++++
#
# spec file for package libyaml
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           libyaml
Version:        0.1.3
Release:        0
#
#
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
#
Url:            http://pyyaml.org/wiki/LibYAML
Source:         http://pyyaml.org/download/libyaml/yaml-0.1.3.tar.gz
Patch:          CVE-2013-6393.patch
Patch1:         CVE-2014-2525.patch
#
Summary:        A YAML 1.1 parser and emitter written in C
License:        MIT
Group:          Development/Libraries/C and C++

%description
A YAML 1.1 parser and emitter written in C

%define lib_name libyaml-0-2

%package -n %{lib_name}

#
Summary:        Shared library from libyaml
Group:          Development/Libraries/C and C++

%description -n %{lib_name}
A YAML 1.1 parser and emitter written in C

This package holds the shared library of libyaml.

%package devel
Requires:       %{lib_name} = %{version}
#
Summary:        Development files for libyaml
Group:          Development/Libraries/C and C++

%description devel
A YAML 1.1 parser and emitter written in C

This package holds the development files for libyaml.

%prep
%setup -n yaml-%{version}
%patch -p1
%patch1 -p1

%build
%configure --with-pic --disable-static
make %{?_smp_flags}

%install
%makeinstall
find %{buildroot} -name \*.la -delete -print

%check
make check

%clean
rm -rf %{buildroot}

%post   -n %{lib_name} -p /sbin/ldconfig

%postun -n %{lib_name} -p /sbin/ldconfig

%files -n %{lib_name}
%defattr(-,root,root,-)
%{_libdir}/libyaml-0.so.2
%{_libdir}/libyaml-0.so.2.0.1

%files devel
%defattr(-,root,root,-)
%{_includedir}/yaml.h
%{_libdir}/libyaml.so

%changelog
++++++ CVE-2013-6393.patch ++++++
diff -Naur a/src/api.c b/src/api.c
--- a/src/api.c 2009-08-30 21:50:47.000000000 +0200
+++ b/src/api.c 2014-03-07 17:33:59.345442851 +0100
@@ -117,7 +117,12 @@
 YAML_DECLARE(int)
 yaml_stack_extend(void **start, void **top, void **end)
 {
-    void *new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
+    void *new_start;
+
+    if ((char *)*end - (char *)*start >= INT_MAX / 2)
+ return 0;
+
+    new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
 
     if (!new_start) return 0;
 
diff -Naur a/src/scanner.c b/src/scanner.c
--- a/src/scanner.c     2009-08-30 21:50:47.000000000 +0200
+++ b/src/scanner.c     2014-03-07 17:34:08.431442987 +0100
@@ -615,11 +615,11 @@
  */
 
 static int
-yaml_parser_roll_indent(yaml_parser_t *parser, int column,
-        int number, yaml_token_type_t type, yaml_mark_t mark);
+yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,
+        ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark);
 
 static int
-yaml_parser_unroll_indent(yaml_parser_t *parser, int column);
+yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column);
 
 /*
  * Token fetchers.
@@ -1103,7 +1103,7 @@
      */
 
     int required = (!parser->flow_level
-            && parser->indent == (int)parser->mark.column);
+            && parser->indent == (ptrdiff_t)parser->mark.column);
 
     /*
      * A simple key is required only when it is the first token in the current
@@ -1176,6 +1176,11 @@
 
     /* Increase the flow level. */
 
+    if (parser->flow_level == INT_MAX) {
+        parser->error = YAML_MEMORY_ERROR;
+        return 0;
+    }
+
     parser->flow_level++;
 
     return 1;
@@ -1206,8 +1211,8 @@
  */
 
 static int
-yaml_parser_roll_indent(yaml_parser_t *parser, int column,
-        int number, yaml_token_type_t type, yaml_mark_t mark)
+yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,
+        ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark)
 {
     yaml_token_t token;
 
@@ -1226,6 +1231,11 @@
         if (!PUSH(parser, parser->indents, parser->indent))
             return 0;
 
+        if (column > INT_MAX) {
+            parser->error = YAML_MEMORY_ERROR;
+            return 0;
+        }
+
         parser->indent = column;
 
         /* Create a token and insert it into the queue. */
@@ -1254,7 +1264,7 @@
 
 
 static int
-yaml_parser_unroll_indent(yaml_parser_t *parser, int column)
+yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column)
 {
     yaml_token_t token;
 
@@ -2574,7 +2584,7 @@
 
     /* Resize the string to include the head. */
 
-    while (string.end - string.start <= (int)length) {
+    while ((size_t)(string.end - string.start) <= length) {
         if (!yaml_string_extend(&string.start, &string.pointer, &string.end)) {
             parser->error = YAML_MEMORY_ERROR;
             goto error;
diff -Naur a/src/yaml_private.h b/src/yaml_private.h
--- a/src/yaml_private.h        2009-08-30 21:50:47.000000000 +0200
+++ b/src/yaml_private.h        2014-03-07 17:34:04.399442926 +0100
@@ -7,6 +7,7 @@
 
 #include <assert.h>
 #include <limits.h>
+#include <stddef.h>
 
 /*
  * Memory management.
++++++ CVE-2014-2525.patch ++++++
diff -Naur a/src/scanner.c b/src/scanner.c
--- a/src/scanner.c     2014-03-19 13:11:22.817162337 +0100
+++ b/src/scanner.c     2014-03-19 13:11:35.733162531 +0100
@@ -2619,6 +2619,9 @@
         /* 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;
         }
diff -Naur a/src/yaml_private.h b/src/yaml_private.h
--- a/src/yaml_private.h        2014-03-19 13:11:22.816162337 +0100
+++ b/src/yaml_private.h        2014-03-19 13:11:35.734162531 +0100
@@ -132,9 +132,12 @@
      (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,                                        
 \
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to