mesa: Fix off-by-one error in transform feedback size check.
authorPaul Berry <stereotype441@gmail.com>
Thu, 8 Dec 2011 19:23:22 +0000 (11:23 -0800)
committerPaul Berry <stereotype441@gmail.com>
Tue, 20 Dec 2011 22:32:16 +0000 (14:32 -0800)
In _mesa_BindBufferRange(), we need to verify that the offset and size
specified by the client do not exceed the size of the underlying
buffer.  We were accidentally doing this check using ">=" rather than
">", so we were generating a bogus error if the client specified an
offset and size that fit exactly in the underlying buffer.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/transformfeedback.c

index 824f66a35289e7e26a1ef56335d862af1b615d7b..b0b75eaf5c3cf508ae679b7e29a3a6df6cb40cee 100644 (file)
@@ -473,7 +473,7 @@ _mesa_BindBufferRange(GLenum target, GLuint index,
       return;
    }
 
-   if (offset + size >= bufObj->Size) {
+   if (offset + size > bufObj->Size) {
       _mesa_error(ctx, GL_INVALID_VALUE,
                   "glBindBufferRange(offset + size %d > buffer size %d)",
                  (int) (offset + size), (int) (bufObj->Size));