Mesa (master): tnl: Don't dereference NULL obj pointer in t_rebase_prims
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Apr 13 17:49:39 UTC 2020
Module: Mesa
Branch: master
Commit: 7a03240b635cd67f345811b86b9faf106f862ec0
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a03240b635cd67f345811b86b9faf106f862ec0
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Wed Apr 8 11:12:19 2020 -0700
tnl: Don't dereference NULL obj pointer in t_rebase_prims
Structurally the code is now similar to the handling of other
gl_buffer_object::obj pointers elsewhere in TNL. The fixes tag is a
little bit misleading. I think the change in that commit just exposes a
previously existing bug.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2746
Fixes: f3cce7087a5 ("mesa: don't ever bind NullBufferObj for glBindBuffer targets")
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4512>
---
src/mesa/tnl/t_rebase.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/mesa/tnl/t_rebase.c b/src/mesa/tnl/t_rebase.c
index 2d53d947d3d..dc64e81fbd2 100644
--- a/src/mesa/tnl/t_rebase.c
+++ b/src/mesa/tnl/t_rebase.c
@@ -151,16 +151,19 @@ void t_rebase_prims( struct gl_context *ctx,
} else if (ib) {
/* Unfortunately need to adjust each index individually.
*/
- GLboolean map_ib = ib->obj &&
- !ib->obj->Mappings[MAP_INTERNAL].Pointer;
- void *ptr;
-
- if (map_ib)
- ctx->Driver.MapBufferRange(ctx, 0, ib->obj->Size, GL_MAP_READ_BIT,
- ib->obj, MAP_INTERNAL);
-
-
- ptr = ADD_POINTERS(ib->obj->Mappings[MAP_INTERNAL].Pointer, ib->ptr);
+ bool map_ib = false;
+ const void *ptr;
+
+ if (ib->obj) {
+ if (!ib->obj->Mappings[MAP_INTERNAL].Pointer) {
+ ctx->Driver.MapBufferRange(ctx, 0, ib->obj->Size, GL_MAP_READ_BIT,
+ ib->obj, MAP_INTERNAL);
+ map_ib = true;
+ }
+
+ ptr = ADD_POINTERS(ib->obj->Mappings[MAP_INTERNAL].Pointer, ib->ptr);
+ } else
+ ptr = ib->ptr;
/* Some users might prefer it if we translated elements to
* GLuints here. Others wouldn't...
More information about the mesa-commit
mailing list