Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37043888
en ru br
Репозитории ALT
S:4.04-alt19
D:3.61-alt1
5.1: 3.63-alt4
4.1: 3.36-alt2
4.0: 3.36-alt2
3.0: 2.11-alt1
www.altlinux.org/Changes

Группа :: Система/Ядро и оборудование
Пакет: syslinux

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: syslinux-4.04-cache_fix.diff
Скачать


commit 0a0e0e41cad93cd16c323cf16f40264a21eedd6c
Author: H. Peter Anvin <hpa@zytor.com>
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 <jsafrata@centrum.cz>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
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;
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin