[BUG] EDID leaks kernel memory

Russell King - ARM Linux linux at arm.linux.org.uk
Sat Aug 11 09:51:19 PDT 2012


Hi,

While looking at the kernel DRM code, I've noticed that in many places
we kmalloc() memory to store the raw EDID information, whether it be
from a DDC adapter, or loaded from firmware.

Nowhere can I find where this memory is freed.  It seems in several
places that we assign it into connector->display_info.raw_edid, and
next time we obtain EDID information, we re-kmalloc and overwrite this
pointer.

Note that some drivers do kfree() this memory themselves after blindly
setting connector->display_info.raw_edid to NULL...

Can someone please point me to where this memory is freed?  If not, I'll
cook up a patch to add some kfree's.

Thanks.


More information about the dri-devel mailing list