GUACAMOLE-1867: Migrate telnet to new memory management functions.
This commit is contained in:
parent
944718174d
commit
cf1039845f
@ -33,6 +33,7 @@
|
||||
|
||||
#include <guacamole/argv.h>
|
||||
#include <guacamole/client.h>
|
||||
#include <guacamole/mem.h>
|
||||
#include <guacamole/recording.h>
|
||||
#include <guacamole/socket.h>
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
#include "telnet.h"
|
||||
|
||||
#include <guacamole/client.h>
|
||||
#include <guacamole/mem.h>
|
||||
#include <guacamole/recording.h>
|
||||
#include <guacamole/user.h>
|
||||
#include <libtelnet.h>
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@
|
||||
#include "settings.h"
|
||||
#include "terminal/terminal.h"
|
||||
|
||||
#include <guacamole/mem.h>
|
||||
#include <guacamole/user.h>
|
||||
#include <guacamole/wol-constants.h>
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -24,6 +24,7 @@
|
||||
#include "terminal/terminal.h"
|
||||
|
||||
#include <guacamole/client.h>
|
||||
#include <guacamole/mem.h>
|
||||
#include <guacamole/protocol.h>
|
||||
#include <guacamole/recording.h>
|
||||
#include <guacamole/timestamp.h>
|
||||
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user