diff options
author | Kyle McMartin <kyle@redhat.com> | 2009-05-11 23:58:57 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2009-05-12 00:03:26 -0400 |
commit | b172617909976c4a7d8f05191e23e4647c1a1c96 (patch) | |
tree | c2a45f3c510e7c89035fd1a96adefaa9f9b5c568 | |
parent | 23e62499a5ecfd9c70db00c181a4801d4898fe83 (diff) |
Crasher fix: Use ExaDriverAlloc() to calloc the EXA struct.
Patch from Kyle McMartin. A recent exa/exa.c commit from Dave Airlie
(02ae85c4..) added a new member to the EXA struct, and corresponding
code to call it if it's non-NULL. We were using calloc with sizeof()
that struct at driver-compile-time; as a result, after the ABI change
the new member contained garbage, passed the EXA test for NULL, was
called, and segfaulted at startup.
RH bug https://bugzilla.redhat.com/show_bug.cgi?id=500086
Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r-- | src/gx_driver.c | 2 | ||||
-rw-r--r-- | src/lx_driver.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gx_driver.c b/src/gx_driver.c index 46b04f5..f842712 100644 --- a/src/gx_driver.c +++ b/src/gx_driver.c @@ -1250,7 +1250,7 @@ GXScreenInit(int scrnIndex, ScreenPtr pScrn, int argc, char **argv) if (pGeode->useEXA) { - if (!(pGeode->pExa = xnfcalloc(sizeof(ExaDriverRec), 1))) { + if (!(pGeode->pExa = exaDriverAlloc())) { xf86DrvMsg(scrnIndex, X_ERROR, "Couldn't allocate the EXA structure.\n"); pGeode->NoAccel = TRUE; diff --git a/src/lx_driver.c b/src/lx_driver.c index 42742fb..19e923e 100644 --- a/src/lx_driver.c +++ b/src/lx_driver.c @@ -842,7 +842,7 @@ LXScreenInit(int scrnIndex, ScreenPtr pScrn, int argc, char **argv) if (!pGeode->NoAccel) { - pGeode->pExa = xnfcalloc(sizeof(ExaDriverRec), 1); + pGeode->pExa = exaDriverAlloc(); if (pGeode->pExa) { |