diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2011-08-11 11:22:57 +0200 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2011-08-11 11:22:57 +0200 |
commit | f95a41b7851565c282d22f8d679db1377428f165 (patch) | |
tree | 422b0e9496468f80d7dd95031f5c9ebeb0277280 /src/radeon_video.c | |
parent | 93fc0843a1e31dc9237433bc2bf17df79e956d26 (diff) |
video: Don't round up bottom/right edge for clipping source width/height.
It's not necessary: If the top/left edge was rounded down, this will be
compensated by the subtraction.
Worse, if the original source width/height is odd, rounding up may result in
reading past the end of the source data.
Fixes http://bugs.debian.org/637258 .
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/radeon_video.c')
-rw-r--r-- | src/radeon_video.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/radeon_video.c b/src/radeon_video.c index 66ff2ad1..834f9246 100644 --- a/src/radeon_video.c +++ b/src/radeon_video.c @@ -2996,7 +2996,7 @@ RADEONPutImage( /* copy data */ top = ya >> 16; left = (xa >> 16) & ~1; - npixels = (RADEON_ALIGN((xb + 0xffff) >> 16, 2)) - left; + npixels = ((xb + 0xffff) >> 16) - left; offset = (pPriv->video_offset) + (top * dstPitch); @@ -3055,7 +3055,7 @@ RADEONPutImage( s2offset = s3offset; s3offset = tmp; } - nlines = (RADEON_ALIGN((yb + 0xffff) >> 16, 2)) - top; + nlines = ((yb + 0xffff) >> 16) - top; RADEONCopyMungedData(pScrn, buf + (top * srcPitch) + left, buf + s2offset, buf + s3offset, dst_start, srcPitch, srcPitch2, dstPitch, nlines, npixels); |