aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Austin <caustin@gmail.com>2013-02-26 00:57:45 -0800
committerJukka Jylänki <jujjyl@gmail.com>2013-04-12 14:24:15 +0300
commit6a2a01fe0ec1a297c5a45e21a6107e592986e762 (patch)
treeaf79f89892f35aad7953ca3d1aacc1b3cb27860e
parent5d119a9acbfd75413bb81fd87d858c9d4d1d6f0e (diff)
We were misusing writeStringToMemory which could cause memory corruption.
-rwxr-xr-xsrc/embind/embind.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/embind/embind.js b/src/embind/embind.js
index 29fb80bf..91812697 100755
--- a/src/embind/embind.js
+++ b/src/embind/embind.js
@@ -2,7 +2,7 @@
/*global Module*/
/*global _malloc, _free, _memcpy*/
/*global FUNCTION_TABLE, HEAP32, HEAP8*/
-/*global Pointer_stringify, writeStringToMemory*/
+/*global Pointer_stringify*/
/*global __emval_register, _emval_handle_array, __emval_decref*/
/*global ___getDynamicPointerType: false*/
/*global ___typeName:false*/
@@ -274,7 +274,9 @@ RegisteredString.prototype.toWireType = function(destructors, value) {
var length = value.length;
var ptr = _malloc(4 + length);
HEAP32[ptr >> 2] = length;
- writeStringToMemory(value, ptr + 4);
+ for (var i = 0; i < length; ++i) {
+ HEAPU8[ptr + 4 + i] = value.charCodeAt(i);
+ }
destructors.push(_free);
destructors.push(ptr);
return ptr;