SHA256
1
0
forked from pool/syslinux
syslinux/syslinux-4.04-cache_fix.patch
Steffen Winterfeldt 0620ccce49 - Use %autosetup macro: allows us to eliminate usage of deprecated
%patchN syntax.
- Normalize all patches to apply as -p1
  + Rebased remove-note-gnu-section.patch
  + Rebased sysmacros.patch
- Rename all *.diff files to *.patch, aligning one a common suffix:
  + syslinux-4.04-align.diff -> syslinux-4.04-align.patch
  + syslinux-4.04-cache_fix.diff -> syslinux-4.04-cache_fix.patch
  + syslinux-4.04-cwd.diff -> syslinux-4.04-cwd.patch
  + syslinux-4.04-gcc10.diff -> syslinux-4.04-gcc10.patch
  + syslinux-4.04-gcc47.diff -> syslinux-4.04-gcc47.patch
  + syslinux-4.04-geometry.diff -> syslinux-4.04-geometry.patch
  + syslinux-4.04-iso9660.diff -> syslinux-4.04-iso9660.patch
  + syslinux-4.04-isohybrid_efi.diff -> syslinux-4.04-isohybrid_efi.patch
  + syslinux-4.04-isohybrid_efi_optional.diff -> syslinux-4.04-isohybrid_efi_optional.patch
  + syslinux-4.04-isohybrid_mbr.diff -> syslinux-4.04-isohybrid_mbr.patch
  + syslinux-4.04-libext2fs.diff -> syslinux-4.04-libext2fs.patch
  + syslinux-4.04-localboot.diff -> syslinux-4.04-localboot.patch
  + syslinux-4.04-lzo.diff -> syslinux-4.04-lzo.patch
  + syslinux-4.04-mboot_bootif.diff -> syslinux-4.04-mboot_bootif.patch
  + syslinux-4.04-md5pass.diff -> syslinux-4.04-md5pass.patch
  + syslinux-4.04-miniacc.diff -> syslinux-4.04-miniacc.patch
  + syslinux-4.04-mtime.diff -> syslinux-4.04-mtime.patch
  + syslinux-4.04-noinitrd.diff -> syslinux-4.04-noinitrd.patch
  + syslinux-4.04-nostrip.diff -> syslinux-4.04-nostrip.patch
  + syslinux-4.04-pie.diff -> syslinux-4.04-pie.patch
  + syslinux-4.04-python3.diff -> syslinux-4.04-python3.patch
  + syslinux-4.04-timeout.diff -> syslinux-4.04-timeout.patch

OBS-URL: https://build.opensuse.org/package/show/system:install:head/syslinux?expand=0&rev=109
2024-06-21 12:26:32 +00:00

37 lines
1.4 KiB
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>
Index: syslinux-4.04/core/fs/cache.c
===================================================================
--- syslinux-4.04.orig/core/fs/cache.c
+++ syslinux-4.04/core/fs/cache.c
@@ -37,10 +37,10 @@ void cache_init(struct device *dev, int
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;