Solaris: avoid memory leak if AGPIOC_INFO ioctl fails

Move malloc after ioctl, so we don't have to worry about free'ing the
memory if the ioctl fails.

[ This bug was found by the Parfait bug checking tool.
  For more information see http://research.sun.com/projects/parfait ]

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
This commit is contained in:
Alan Coopersmith 2010-06-04 08:44:02 -07:00
parent c5eb5d69e5
commit 8ff9b502cf

View File

@ -115,12 +115,6 @@ xf86GetAGPInfo(int screenNum)
if (!GARTInit(screenNum))
return NULL;
if ((info = calloc(sizeof(AgpInfo), 1)) == NULL) {
xf86DrvMsg(screenNum, X_ERROR,
"xf86GetAGPInfo: Failed to allocate AgpInfo\n");
return NULL;
}
if (ioctl(gartFd, AGPIOC_INFO, &agpinf) != 0) {
xf86DrvMsg(screenNum, X_ERROR,
"xf86GetAGPInfo: AGPIOC_INFO failed (%s)\n",
@ -128,6 +122,12 @@ xf86GetAGPInfo(int screenNum)
return NULL;
}
if ((info = calloc(sizeof(AgpInfo), 1)) == NULL) {
xf86DrvMsg(screenNum, X_ERROR,
"xf86GetAGPInfo: Failed to allocate AgpInfo\n");
return NULL;
}
info->bridgeId = agpinf.agpi_devid;
info->agpMode = agpinf.agpi_mode;
info->base = agpinf.agpi_aperbase;