exa: protect from allocation failure
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									8e80caa6f7
								
							
						
					
					
						commit
						b3ef1fbbd3
					
				|  | @ -371,7 +371,6 @@ exaHWCopyNtoN(DrawablePtr pSrcDrawable, | |||
|     int src_off_x, src_off_y; | ||||
|     int dst_off_x, dst_off_y; | ||||
|     RegionPtr srcregion = NULL, dstregion = NULL; | ||||
|     xRectangle *rects; | ||||
|     Bool ret = TRUE; | ||||
| 
 | ||||
|     /* avoid doing copy operations if no boxes */ | ||||
|  | @ -384,8 +383,7 @@ exaHWCopyNtoN(DrawablePtr pSrcDrawable, | |||
|     exaGetDrawableDeltas(pSrcDrawable, pSrcPixmap, &src_off_x, &src_off_y); | ||||
|     exaGetDrawableDeltas(pDstDrawable, pDstPixmap, &dst_off_x, &dst_off_y); | ||||
| 
 | ||||
|     rects = calloc(nbox, sizeof(xRectangle)); | ||||
| 
 | ||||
|     xRectangle *rects = calloc(nbox, sizeof(xRectangle)); | ||||
|     if (rects) { | ||||
|         int i; | ||||
|         int ordering; | ||||
|  | @ -614,7 +612,6 @@ exaPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, | |||
| { | ||||
|     ExaScreenPriv(pDrawable->pScreen); | ||||
|     int i; | ||||
|     xRectangle *prect; | ||||
| 
 | ||||
|     /* If we can't reuse the current GC as is, don't bother accelerating the
 | ||||
|      * points. | ||||
|  | @ -624,7 +621,9 @@ exaPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, | |||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     prect = calloc(npt, sizeof(xRectangle)); | ||||
|     xRectangle *prect = calloc(npt, sizeof(xRectangle)); | ||||
|     if (!prect) | ||||
|         return; | ||||
|     for (i = 0; i < npt; i++) { | ||||
|         prect[i].x = ppt[i].x; | ||||
|         prect[i].y = ppt[i].y; | ||||
|  | @ -649,7 +648,6 @@ exaPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, | |||
|              DDXPointPtr ppt) | ||||
| { | ||||
|     ExaScreenPriv(pDrawable->pScreen); | ||||
|     xRectangle *prect; | ||||
|     int x1, x2, y1, y2; | ||||
|     int i; | ||||
| 
 | ||||
|  | @ -665,7 +663,9 @@ exaPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, | |||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     prect = calloc(npt - 1, sizeof(xRectangle)); | ||||
|     xRectangle *prect = calloc(npt - 1, sizeof(xRectangle)); | ||||
|     if (!prect) | ||||
|         return; | ||||
|     x1 = ppt[0].x; | ||||
|     y1 = ppt[0].y; | ||||
|     /* If we have any non-horizontal/vertical, fall back. */ | ||||
|  | @ -718,7 +718,7 @@ static void | |||
| exaPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg) | ||||
| { | ||||
|     ExaScreenPriv(pDrawable->pScreen); | ||||
|     xRectangle *prect; | ||||
| ; | ||||
|     int i; | ||||
| 
 | ||||
|     /* Don't try to do wide lines or non-solid fill style. */ | ||||
|  | @ -736,7 +736,9 @@ exaPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg) | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     prect = calloc((unsigned int)nseg, sizeof(xRectangle)); | ||||
|     xRectangle *prect = calloc((unsigned int)nseg, sizeof(xRectangle)); | ||||
|     if (!prect) | ||||
|         return; | ||||
|     for (i = 0; i < nseg; i++) { | ||||
|         if (pSeg[i].x1 < pSeg[i].x2) { | ||||
|             prect[i].x = pSeg[i].x1; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue