diff options
author | David Snopek <dsnopek@gmail.com> | 2023-02-10 19:33:18 -0600 |
---|---|---|
committer | David Snopek <dsnopek@gmail.com> | 2023-02-10 19:33:18 -0600 |
commit | 9e4d80e08e35279af5f95915f64b980c0f9c7ba3 (patch) | |
tree | bd203d91f118ae8dde47af8a14167e263b2211b2 | |
parent | 929333fe267f488638c76564237faff9d5d572fc (diff) |
Fix byte packing (and buffer overrun) in godot_webxr_get_bounds_geometry()
-rw-r--r-- | modules/webxr/native/library_godot_webxr.js | 7 |
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'); |