aboutsummaryrefslogtreecommitdiff
path: root/src/session.cpp
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 /src/session.cpp
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 'src/session.cpp')
-rw-r--r--src/session.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/session.cpp b/src/session.cpp
index bad19de..d6761d5 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -398,32 +398,32 @@ std::size_t olm::Session::decrypt(
return result;
}
-const char * olm::Session::describe() {
+void olm::Session::describe(char *describe_buffer, size_t buflen) {
+ if (buflen == 0) return;
+
describe_buffer[0] = '\0';
char *buf_pos = describe_buffer;
buf_pos += snprintf(
- buf_pos, DESCRIBE_BUFFER_LEN - (buf_pos - describe_buffer),
+ buf_pos, buflen - (buf_pos - describe_buffer),
"sender chain index: %d ", ratchet.sender_chain[0].chain_key.index
);
- buf_pos += snprintf(buf_pos, DESCRIBE_BUFFER_LEN - (buf_pos - describe_buffer), "receiver chain indcies:");
+ buf_pos += snprintf(buf_pos, buflen - (buf_pos - describe_buffer), "receiver chain indcies:");
for (size_t i = 0; i < ratchet.receiver_chains.size(); ++i) {
buf_pos += snprintf(
- buf_pos, DESCRIBE_BUFFER_LEN - (buf_pos - describe_buffer),
+ buf_pos, buflen - (buf_pos - describe_buffer),
" %d", ratchet.receiver_chains[i].chain_key.index
);
}
- buf_pos += snprintf(buf_pos, DESCRIBE_BUFFER_LEN - (buf_pos - describe_buffer), " skipped message keys:");
+ buf_pos += snprintf(buf_pos, buflen - (buf_pos - describe_buffer), " skipped message keys:");
for (size_t i = 0; i < ratchet.skipped_message_keys.size(); ++i) {
buf_pos += snprintf(
- buf_pos, DESCRIBE_BUFFER_LEN - (buf_pos - describe_buffer),
+ buf_pos, buflen - (buf_pos - describe_buffer),
" %d", ratchet.skipped_message_keys[i].message_key.index
);
}
-
- return describe_buffer;
}
namespace {