summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Snopek <dsnopek@gmail.com>2023-02-10 19:33:18 -0600
committerDavid Snopek <dsnopek@gmail.com>2023-02-10 19:33:18 -0600
commit9e4d80e08e35279af5f95915f64b980c0f9c7ba3 (patch)
treebd203d91f118ae8dde47af8a14167e263b2211b2
parent929333fe267f488638c76564237faff9d5d572fc (diff)
Fix byte packing (and buffer overrun) in godot_webxr_get_bounds_geometry()
-rw-r--r--modules/webxr/native/library_godot_webxr.js7
1 files changed, 3 insertions, 4 deletions
diff --git a/modules/webxr/native/library_godot_webxr.js b/modules/webxr/native/library_godot_webxr.js
index 1c00ebebb4..5c01d88a30 100644
--- a/modules/webxr/native/library_godot_webxr.js
+++ b/modules/webxr/native/library_godot_webxr.js
@@ -584,12 +584,11 @@ const GodotWebXR = {
}
const buf = GodotRuntime.malloc(point_count * 3 * 4);
- GodotRuntime.setHeapValue(buf, point_count, 'i32');
for (let i = 0; i < point_count; i++) {
const point = GodotWebXR.space.boundsGeometry[i];
- GodotRuntime.setHeapValue(buf + ((i * 3) + 1) * 4, point.x, 'float');
- GodotRuntime.setHeapValue(buf + ((i * 3) + 2) * 4, point.y, 'float');
- GodotRuntime.setHeapValue(buf + ((i * 3) + 3) * 4, point.z, 'float');
+ GodotRuntime.setHeapValue(buf + ((i * 3) + 0) * 4, point.x, 'float');
+ GodotRuntime.setHeapValue(buf + ((i * 3) + 1) * 4, point.y, 'float');
+ GodotRuntime.setHeapValue(buf + ((i * 3) + 2) * 4, point.z, 'float');
}
GodotRuntime.setHeapValue(r_points, buf, 'i32');