Hello community,

here is the log from the commit of package syslinux for openSUSE:Factory 
checked in at 2014-08-13 17:07:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/syslinux (Old)
 and      /work/SRC/openSUSE:Factory/.syslinux.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "syslinux"

Changes:
--------
--- /work/SRC/openSUSE:Factory/syslinux/syslinux.changes        2014-03-25 
13:20:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.syslinux.new/syslinux.changes   2014-08-13 
17:07:54.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 11 15:51:11 CEST 2014 - [email protected]
+
+- syslinux-4.04-cache_fix.diff: fix memory corruption due to wrong fs cache
+  initialisation (bnc #884181)
+
+-------------------------------------------------------------------

New:
----
  syslinux-4.04-cache_fix.diff

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

Other differences:
------------------
++++++ syslinux.spec ++++++
--- /var/tmp/diff_new_pack.WvQi4e/_old  2014-08-13 17:07:55.000000000 +0200
+++ /var/tmp/diff_new_pack.WvQi4e/_new  2014-08-13 17:07:55.000000000 +0200
@@ -49,6 +49,7 @@
 Patch12:        %{name}-%{version}-geometry.diff
 Patch13:        %{name}-%{version}-nostrip.diff
 Patch14:        %{name}-%{version}-timeout.diff
+Patch15:        %{name}-%{version}-cache_fix.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -79,6 +80,7 @@
 %patch12 -p1
 %patch13 -p0
 %patch14 -p1
+%patch15 -p1
 
 %build
 cp %{SOURCE2} .

++++++ syslinux-4.04-cache_fix.diff ++++++
commit 0a0e0e41cad93cd16c323cf16f40264a21eedd6c
Author: H. Peter Anvin <[email protected]>
Date:   Thu Jul 19 07:29:55 2012 -0700

    Correct initialization of the cache doubly-linked list
    
    The initialization of the cache doubly-linked list had
    head->next->prev instead of head->prev->next; this entry is supposed
    to initialize the ->next entry of the last entry in the list (which
    points back to the head node.)
    
    For clarity, consistently use "head" to refer to the head node; the
    mixing of "head" and "dev->cache_head" needlessly obfuscated the code.
    
    The wild pointer reference caused crashes on some systems.
    
    Reported-by: Jan Safrata <[email protected]>
    Signed-off-by: H. Peter Anvin <[email protected]>

diff --git a/core/fs/cache.c b/core/fs/cache.c
index 0d7891b..3b21fc2 100644
--- a/core/fs/cache.c
+++ b/core/fs/cache.c
@@ -37,10 +37,10 @@ void cache_init(struct device *dev, int block_size_shift)
 
     dev->cache_head = head = (struct cache *)
        (data + (dev->cache_entries << block_size_shift));
-    cache = dev->cache_head + 1; /* First cache descriptor */
+    cache = head + 1;          /* First cache descriptor */
 
     head->prev  = &cache[dev->cache_entries-1];
-    head->next->prev = dev->cache_head;
+    head->prev->next = head;
     head->block = -1;
     head->data  = NULL;
 
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to