• Mike DePaulo's avatar
    Avoid use-after-free in dix/dixfonts.c: doImageText() [CVE-2013-4396] from… · 72790a55
    Mike DePaulo authored
    Avoid use-after-free in dix/dixfonts.c: doImageText() [CVE-2013-4396] from xorg/Xserver http://lists.x.org/archives/xorg-announce/2013-October/002332.html
    
    Save a pointer to the passed in closure structure before copying it
    and overwriting the *c pointer to point to our copy instead of the
    original.  If we hit an error, once we free(c), reset c to point to
    the original structure before jumping to the cleanup code that
    references *c.
    
    Since one of the errors being checked for is whether the server was
    able to malloc(c->nChars * itemSize), the client can potentially pass
    a number of characters chosen to cause the malloc to fail and the
    error path to be taken, resulting in the read from freed memory.
    
    Since the memory is accessed almost immediately afterwards, and the
    X server is mostly single threaded, the odds of the free memory having
    invalid contents are low with most malloc implementations when not using
    memory debugging features, but some allocators will definitely overwrite
    the memory there, leading to a likely crash.
    72790a55
Name
Last commit
Last update
..
GL Loading commit data...
XTrap Loading commit data...
Xext Loading commit data...
Xi Loading commit data...
composite Loading commit data...
damageext Loading commit data...
dbe Loading commit data...
dix Loading commit data...
fb Loading commit data...
hw Loading commit data...
include Loading commit data...
mfb Loading commit data...
mi Loading commit data...
miext Loading commit data...
os Loading commit data...
randr Loading commit data...
record Loading commit data...
render Loading commit data...
xfixes Loading commit data...
xkb Loading commit data...
Imakefile Loading commit data...
Xserver.man Loading commit data...