forked from osmocom/wireshark
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.
This commit is contained in:
parent
5dbaa8d3b2
commit
68e360bf04
|
@ -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);
|
||||
}
|
||||
|
|
5
tshark.c
5
tshark.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -24,11 +24,13 @@ extern "C" {
|
|||
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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue