diff options
author | David Baker <dave@matrix.org> | 2019-10-04 11:43:40 +0100 |
---|---|---|
committer | David Baker <dave@matrix.org> | 2019-10-04 11:43:40 +0100 |
commit | b482321213e6e896d0981c266bed12f4e1f67441 (patch) | |
tree | ea8decd8eb2187ee049a2a3587ee28a2730c25fe /javascript | |
parent | e73a208fb2b70fb5d195a74956f22ea6557d361f (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')
-rw-r--r-- | javascript/olm_post.js | 14 |
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() { |