diff options
author | Brian Paul <[email protected]> | 2005-09-16 21:15:27 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2005-09-16 21:15:27 +0000 |
commit | 67074332728acba86da7630353673b458713bb8a (patch) | |
tree | ee17b8b91b16ef04df684157d2b25983373268e7 /src/mesa/swrast/s_logic.c | |
parent | 82e314252f0b706c3ae1c748e9d64d8fa58812db (diff) |
Fix potential segfault when trying to read pixels outside renderbuffer bounds.
Use _swrast_get_values() which does clipping.
Diffstat (limited to 'src/mesa/swrast/s_logic.c')
-rw-r--r-- | src/mesa/swrast/s_logic.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/swrast/s_logic.c b/src/mesa/swrast/s_logic.c index 05e2e0ade47..ff3c3fc2f14 100644 --- a/src/mesa/swrast/s_logic.c +++ b/src/mesa/swrast/s_logic.c @@ -192,7 +192,8 @@ _swrast_logicop_ci_span(GLcontext *ctx, struct gl_renderbuffer *rb, /* Read dest values from frame buffer */ if (span->arrayMask & SPAN_XY) { - rb->GetValues(ctx, rb, span->end, span->array->x, span->array->y, dest); + _swrast_get_values(ctx, rb, span->end, span->array->x, span->array->y, + dest, sizeof(GLuint)); } else { rb->GetRow(ctx, rb, span->end, span->x, span->y, dest); @@ -218,7 +219,8 @@ _swrast_logicop_rgba_span(GLcontext *ctx, struct gl_renderbuffer *rb, ASSERT(rb->DataType == GL_UNSIGNED_BYTE); if (span->arrayMask & SPAN_XY) { - rb->GetValues(ctx, rb, span->end, span->array->x, span->array->y, dest); + _swrast_get_values(ctx, rb, span->end, span->array->x, span->array->y, + dest, 4 * sizeof(GLchan)); } else { _swrast_read_rgba_span(ctx, rb, span->end, span->x, span->y, dest); |