aboutsummaryrefslogtreecommitdiff
path: root/javascript/olm_post.js
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2019-10-04 11:43:40 +0100
committerDavid Baker <dave@matrix.org>2019-10-04 11:43:40 +0100
commitb482321213e6e896d0981c266bed12f4e1f67441 (patch)
treeea8decd8eb2187ee049a2a3587ee28a2730c25fe /javascript/olm_post.js
parente73a208fb2b70fb5d195a74956f22ea6557d361f (diff)
Pass in a buffer to olm_session_describe
instead of having a static one, as that could end up taking up a lot of memory if your app keeps olm sessions hanging about.
Diffstat (limited to 'javascript/olm_post.js')
-rw-r--r--javascript/olm_post.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/javascript/olm_post.js b/javascript/olm_post.js
index c0498db..e204f30 100644
--- a/javascript/olm_post.js
+++ b/javascript/olm_post.js
@@ -460,10 +460,16 @@ Session.prototype['decrypt'] = restore_stack(function(
});
Session.prototype['describe'] = restore_stack(function() {
- var description_buf = session_method(Module['_olm_session_describe'])(
- this.ptr
- );
- return UTF8ToString(description_buf);
+ var description_buf;
+ try {
+ description_buf = malloc(256);
+ session_method(Module['_olm_session_describe'])(
+ this.ptr, description_buf, 256
+ );
+ return UTF8ToString(description_buf);
+ } finally {
+ if (description_buf !== undefined) free(description_buf);
+ }
});
function Utility() {