Re: [PATCH] sync: Fix memory corruption in sync_timeline_signal().

From: Greg Kroah-Hartman
Date: Tue Mar 24 2015 - 17:46:31 EST


On Tue, Mar 24, 2015 at 01:55:04PM -0700, Alistair Strachan wrote:
> The android_fence_release() function checks for active sync points
> by calling list_empty() on the list head embedded on the sync
> point. However, it is only valid to use list_empty() on nodes that
> have been initialized with INIT_LIST_HEAD() or list_del_init().
>
> Because the list entry has likely been removed from the active list
> by sync_timeline_signal(), there is a good chance that this
> WARN_ON_ONCE() will be hit due to dangling pointers pointing at
> freed memory (even though the sync drivers did nothing wrong)
> and memory corruption will ensue as the list entry is removed for
> a second time, corrupting the active list.
>
> This problem can be reproduced quite easily with CONFIG_DEBUG_LIST=y
> and fences with more than one sync point.
>
> Change-Id: Ie2a6bc1480bbcfdc14f9b385fca5a2b833effc05

This line doesn't belong in a kernel changelog, can you please remove
and resend?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/