Module Name: xsrc Committed By: christos Date: Thu Nov 14 00:11:12 UTC 2013
Modified Files: xsrc/external/mit/xf86-video-intel/dist/src: i810_dri.c Log Message: CID 1107540: Make the code safe avoiding random stack access. In the first loop where there is a singleton point to pptSrc, only access that singleton, no matter what. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-intel/dist/src/i810_dri.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: xsrc/external/mit/xf86-video-intel/dist/src/i810_dri.c diff -u xsrc/external/mit/xf86-video-intel/dist/src/i810_dri.c:1.3 xsrc/external/mit/xf86-video-intel/dist/src/i810_dri.c:1.4 --- xsrc/external/mit/xf86-video-intel/dist/src/i810_dri.c:1.3 Wed Nov 13 16:48:25 2013 +++ xsrc/external/mit/xf86-video-intel/dist/src/i810_dri.c Wed Nov 13 19:11:12 2013 @@ -1245,10 +1245,17 @@ I810DRIMoveBuffers(WindowPtr pParent, DD while ((pboxNext >= pbox) && (pboxBase->y1 == pboxNext->y1)) pboxNext--; pboxTmp = pboxNext + 1; - pptTmp = pptSrc + (pboxTmp - pbox); - while (pboxTmp <= pboxBase) { - *pboxNew1++ = *pboxTmp++; - *pptNew1++ = *pptTmp++; + if (pptSrc == &ptOldOrg) { + if (pboxTmp <= pboxBase) { + *pboxNew1++ = *pboxTmp; + *pptNew1++ = *pptSrc; + } + } else { + pptTmp = pptSrc + (pboxTmp - pbox); + while (pboxTmp <= pboxBase) { + *pboxNew1++ = *pboxTmp++; + *pptNew1++ = *pptTmp++; + } } pboxBase = pboxNext; }