diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2021-06-07 08:59:02 +0200 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2021-06-07 08:59:02 +0200 |
commit | 68e360bf0404e5b5246281ed3ea289907320dd76 (patch) | |
tree | 1a450599efb47922b08e211c9bb582f1312aade4 | |
parent | 5dbaa8d3b28cf32a103408868fa4cf5b63dd6a56 (diff) |
ui: Return length from ssl_export_sessions()
All users of ssl_export_sessions() calculates the length of the
returned string, so let's return the length instead.
-rw-r--r-- | sharkd_session.c | 5 | ||||
-rw-r--r-- | tshark.c | 5 | ||||
-rw-r--r-- | ui/qt/main_window_slots.cpp | 5 | ||||
-rw-r--r-- | ui/ssl_key_export.c | 3 | ||||
-rw-r--r-- | ui/ssl_key_export.h | 4 |
5 files changed, 14 insertions, 8 deletions
diff --git a/sharkd_session.c b/sharkd_session.c index 9451c645a0..6684136599 100644 --- a/sharkd_session.c +++ b/sharkd_session.c @@ -4077,7 +4077,8 @@ sharkd_session_process_download(char *buf, const jsmntok_t *tokens, int count) } else if (!strcmp(tok_token, "ssl-secrets")) { - char *str = ssl_export_sessions(); + gsize str_len; + char *str = ssl_export_sessions(&str_len); if (str) { @@ -4087,7 +4088,7 @@ sharkd_session_process_download(char *buf, const jsmntok_t *tokens, int count) json_dumper_begin_object(&dumper); sharkd_json_value_string("file", filename); sharkd_json_value_string("mime", mime); - sharkd_json_value_base64("data", str, strlen(str)); + sharkd_json_value_base64("data", str, str_len); json_dumper_end_object(&dumper); json_dumper_finish(&dumper); } @@ -2330,8 +2330,9 @@ main(int argc, char *argv[]) draw_tap_listeners(TRUE); if (tls_session_keys_file) { - gchar *keylist = ssl_export_sessions(); - write_file_binary_mode(tls_session_keys_file, keylist, strlen(keylist)); + gsize keylist_length; + gchar *keylist = ssl_export_sessions(&keylist_length); + write_file_binary_mode(tls_session_keys_file, keylist, keylist_length); g_free(keylist); } diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index f1cf8b7ab2..1c6d945808 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -1856,8 +1856,9 @@ void MainWindow::on_actionFileExportTLSSessionKeys_triggered() tr("TLS Session Keys (*.keys *.txt);;All Files (" ALL_FILES_WILDCARD ")") ); if (file_name.length() > 0) { - gchar *keylist = ssl_export_sessions(); - write_file_binary_mode(qUtf8Printable(file_name), keylist, strlen(keylist)); + gsize keylist_length; + gchar *keylist = ssl_export_sessions(&keylist_length); + write_file_binary_mode(qUtf8Printable(file_name), keylist, keylist_length); /* Save the directory name for future file dialogs. */ wsApp->setLastOpenDir(file_name); diff --git a/ui/ssl_key_export.c b/ui/ssl_key_export.c index 3177104750..6cc2b0743b 100644 --- a/ui/ssl_key_export.c +++ b/ui/ssl_key_export.c @@ -74,7 +74,7 @@ ssl_export_client_randoms_func(gpointer key, gpointer value, gpointer user_data) } gchar* -ssl_export_sessions(void) +ssl_export_sessions(gsize *length) { /* Output format is: * "RSA Session-ID:xxxx Master-Key:yyyy\n" @@ -98,5 +98,6 @@ ssl_export_sessions(void) g_hash_table_foreach(ssl_session_hash, ssl_export_sessions_func, (gpointer)keylist); g_hash_table_foreach(ssl_crandom_hash, ssl_export_client_randoms_func, (gpointer)keylist); + *length = keylist->len; return g_string_free(keylist, FALSE); } diff --git a/ui/ssl_key_export.h b/ui/ssl_key_export.h index 7bfaee3758..d6eece7075 100644 --- a/ui/ssl_key_export.h +++ b/ui/ssl_key_export.h @@ -25,10 +25,12 @@ extern int ssl_session_key_count(void); /** Dump our SSL Session Keys to a string * + * @param[out] length Length of returned string. + * * @return A string containing all the SSL Session Keys. Must be freed with * g_free(). */ -extern gchar* ssl_export_sessions(void); +extern gchar* ssl_export_sessions(gsize *length); #ifdef __cplusplus } |