diff --git a/src/protocols/telnet/client.c b/src/protocols/telnet/client.c index c1085038..ba1f20f4 100644 --- a/src/protocols/telnet/client.c +++ b/src/protocols/telnet/client.c @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -68,7 +69,7 @@ int guac_client_init(guac_client* client) { client->args = GUAC_TELNET_CLIENT_ARGS; /* Allocate client instance data */ - guac_telnet_client* telnet_client = calloc(1, sizeof(guac_telnet_client)); + guac_telnet_client* telnet_client = guac_mem_zalloc(sizeof(guac_telnet_client)); client->data = telnet_client; /* Init telnet client */ @@ -125,7 +126,7 @@ int guac_telnet_client_free_handler(guac_client* client) { if (telnet_client->settings != NULL) guac_telnet_settings_free(telnet_client->settings); - free(telnet_client); + guac_mem_free(telnet_client); return 0; } diff --git a/src/protocols/telnet/input.c b/src/protocols/telnet/input.c index 02ddc1de..849d1897 100644 --- a/src/protocols/telnet/input.c +++ b/src/protocols/telnet/input.c @@ -23,6 +23,7 @@ #include "telnet.h" #include +#include #include #include #include @@ -79,7 +80,7 @@ int guac_telnet_user_key_handler(guac_user* user, int keysym, int pressed) { "Stopping password prompt search due to user input."); regfree(settings->password_regex); - free(settings->password_regex); + guac_mem_free(settings->password_regex); settings->password_regex = NULL; } @@ -91,7 +92,7 @@ int guac_telnet_user_key_handler(guac_user* user, int keysym, int pressed) { "Stopping username prompt search due to user input."); regfree(settings->username_regex); - free(settings->username_regex); + guac_mem_free(settings->username_regex); settings->username_regex = NULL; } diff --git a/src/protocols/telnet/settings.c b/src/protocols/telnet/settings.c index ddffc8e6..11bddbb2 100644 --- a/src/protocols/telnet/settings.c +++ b/src/protocols/telnet/settings.c @@ -24,6 +24,7 @@ #include "settings.h" #include "terminal/terminal.h" +#include #include #include @@ -278,7 +279,7 @@ enum TELNET_ARGS_IDX { /** * Compiles the given regular expression, returning NULL if compilation fails * or of the given regular expression is NULL. The returned regex_t must be - * freed with regfree() AND free(), or with guac_telnet_regex_free(). + * freed with regfree() AND guac_mem_free(), or with guac_telnet_regex_free(). * * @param user * The user who provided the setting associated with the given regex @@ -298,7 +299,7 @@ static regex_t* guac_telnet_compile_regex(guac_user* user, char* pattern) { return NULL; int compile_result; - regex_t* regex = malloc(sizeof(regex_t)); + regex_t* regex = guac_mem_alloc(sizeof(regex_t)); /* Compile regular expression */ compile_result = regcomp(regex, pattern, @@ -308,7 +309,7 @@ static regex_t* guac_telnet_compile_regex(guac_user* user, char* pattern) { if (compile_result != 0) { guac_user_log(user, GUAC_LOG_ERROR, "Regular expression '%s' " "could not be compiled.", pattern); - free(regex); + guac_mem_free(regex); return NULL; } @@ -318,7 +319,7 @@ static regex_t* guac_telnet_compile_regex(guac_user* user, char* pattern) { void guac_telnet_regex_free(regex_t** regex) { if (*regex != NULL) { regfree(*regex); - free(*regex); + guac_mem_free(*regex); *regex = NULL; } } @@ -334,7 +335,7 @@ guac_telnet_settings* guac_telnet_parse_args(guac_user* user, return NULL; } - guac_telnet_settings* settings = calloc(1, sizeof(guac_telnet_settings)); + guac_telnet_settings* settings = guac_mem_zalloc(sizeof(guac_telnet_settings)); /* Read parameters */ settings->hostname = @@ -538,12 +539,12 @@ guac_telnet_settings* guac_telnet_parse_args(guac_user* user, void guac_telnet_settings_free(guac_telnet_settings* settings) { /* Free network connection information */ - free(settings->hostname); - free(settings->port); + guac_mem_free(settings->hostname); + guac_mem_free(settings->port); /* Free credentials */ - free(settings->username); - free(settings->password); + guac_mem_free(settings->username); + guac_mem_free(settings->password); /* Free various regexes */ guac_telnet_regex_free(&settings->username_regex); @@ -552,26 +553,26 @@ void guac_telnet_settings_free(guac_telnet_settings* settings) { guac_telnet_regex_free(&settings->login_failure_regex); /* Free display preferences */ - free(settings->font_name); - free(settings->color_scheme); + guac_mem_free(settings->font_name); + guac_mem_free(settings->color_scheme); /* Free typescript settings */ - free(settings->typescript_name); - free(settings->typescript_path); + guac_mem_free(settings->typescript_name); + guac_mem_free(settings->typescript_path); /* Free screen recording settings */ - free(settings->recording_name); - free(settings->recording_path); + guac_mem_free(settings->recording_name); + guac_mem_free(settings->recording_path); /* Free terminal emulator type. */ - free(settings->terminal_type); + guac_mem_free(settings->terminal_type); /* Free WoL settings. */ - free(settings->wol_mac_addr); - free(settings->wol_broadcast_addr); + guac_mem_free(settings->wol_mac_addr); + guac_mem_free(settings->wol_broadcast_addr); /* Free overall structure */ - free(settings); + guac_mem_free(settings); } diff --git a/src/protocols/telnet/telnet.c b/src/protocols/telnet/telnet.c index 3a4c5049..e4e2d916 100644 --- a/src/protocols/telnet/telnet.c +++ b/src/protocols/telnet/telnet.c @@ -24,6 +24,7 @@ #include "terminal/terminal.h" #include +#include #include #include #include @@ -604,7 +605,7 @@ void* guac_telnet_client_thread(void* data) { telnet_client->term = guac_terminal_create(client, options); /* Free options struct now that it's been used */ - free(options); + guac_mem_free(options); /* Fail if terminal init failed */ if (telnet_client->term == NULL) {