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:
		
							parent
							
								
									c5eb5d69e5
								
							
						
					
					
						commit
						8ff9b502cf
					
				|  | @ -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; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue