From ecedccb2659c1eac8f5492035a5366de0041e7e7 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sun, 24 Feb 2013 11:25:28 +0100 Subject: [PATCH] fix possible invalid vbo reads - make sure there is an additional vertex for interleaving --- src/org/oscim/renderer/layer/Layers.java | 2 ++ src/org/oscim/renderer/layer/LineTexLayer.java | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/org/oscim/renderer/layer/Layers.java b/src/org/oscim/renderer/layer/Layers.java index 05499077..e88a0540 100644 --- a/src/org/oscim/renderer/layer/Layers.java +++ b/src/org/oscim/renderer/layer/Layers.java @@ -157,6 +157,8 @@ public class Layers { //sbuf.position(sbuf.position() + 6); addPoolItems(l, sbuf); //l.offset -= 12; + + sbuf.position(sbuf.position() + 6); } } diff --git a/src/org/oscim/renderer/layer/LineTexLayer.java b/src/org/oscim/renderer/layer/LineTexLayer.java index 4f2a2712..95cfc3f4 100644 --- a/src/org/oscim/renderer/layer/LineTexLayer.java +++ b/src/org/oscim/renderer/layer/LineTexLayer.java @@ -94,8 +94,13 @@ public final class LineTexLayer extends Layer { // HACK add one vertex offset when compiling // buffer otherwise one cant use the full - // VertexItem - //verticesCnt = 1; + // VertexItem (see Layers.compile) + // add the two 'x' at front and end + //verticesCnt = 2; + + // the additional end vertex to make sure + // not to read outside allocated memory + verticesCnt = 1; } VertexPoolItem si = curItem;