[syslinux] [PATCH] fix for boot crash of syslinux-4.xx

H. Peter Anvin hpa at zytor.com
Mon Feb 20 13:00:59 PST 2012


On 10/21/2011 12:19 AM, Jan Safrata wrote:
> 
> 
> Dissecting syslinux source code reveals, that the problem is within
>   core/fs/cache.c
> function cache_init(), where seems to be an invalid pointer used to store an
> initial value - following patch fixes the problem by commenting out the
> offending line, that seems not to be needed anyway:
> 
> --- syslinux-4.04/core/fs/cache.c-orig	2011-04-18 23:24:17.000000000 +0200
> +++ syslinux-4.04/core/fs/cache.c	2011-09-29 10:54:46.000000000 +0200
> @@ -40,7 +40,9 @@ void cache_init(struct device *dev, int
>      cache = dev->cache_head + 1; /* First cache descriptor */
>  
>      head->prev  = &cache[dev->cache_entries-1];
> -    head->next->prev = dev->cache_head;
> +    /* following line crashes on some hw - NULL dereference? */
> +    /* head->next->prev = dev->cache_head; */
> +    /* it should not be needed anyway, since following loop does it too */
>      head->block = -1;
>      head->data  = NULL;
> 
> With that patch, syslinux works perfectly on the atom based embedded board as
> well as on general pc.
> 

Thanks for the reminder... I will look into it.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.




More information about the Syslinux mailing list