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]
