From fc6195c67fb55ff7bf127d368c03ef95b4e19b3f Mon Sep 17 00:00:00 2001 From: Mike Jumper Date: Sun, 15 Oct 2023 23:27:50 -0700 Subject: [PATCH] GUACAMOLE-1867: Migrate Kubernetes to new memory management functions. --- src/protocols/kubernetes/client.c | 5 ++-- src/protocols/kubernetes/kubernetes.c | 3 ++- src/protocols/kubernetes/settings.c | 33 ++++++++++++++------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/protocols/kubernetes/client.c b/src/protocols/kubernetes/client.c index e42466eb..038da287 100644 --- a/src/protocols/kubernetes/client.c +++ b/src/protocols/kubernetes/client.c @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -120,7 +121,7 @@ int guac_client_init(guac_client* client) { client->args = GUAC_KUBERNETES_CLIENT_ARGS; /* Allocate client instance data */ - guac_kubernetes_client* kubernetes_client = calloc(1, sizeof(guac_kubernetes_client)); + guac_kubernetes_client* kubernetes_client = guac_mem_zalloc(sizeof(guac_kubernetes_client)); client->data = kubernetes_client; /* Set handlers */ @@ -159,7 +160,7 @@ int guac_kubernetes_client_free_handler(guac_client* client) { if (kubernetes_client->settings != NULL) guac_kubernetes_settings_free(kubernetes_client->settings); - free(kubernetes_client); + guac_mem_free(kubernetes_client); return 0; } diff --git a/src/protocols/kubernetes/kubernetes.c b/src/protocols/kubernetes/kubernetes.c index 28f71e75..3a75bb2e 100644 --- a/src/protocols/kubernetes/kubernetes.c +++ b/src/protocols/kubernetes/kubernetes.c @@ -28,6 +28,7 @@ #include "url.h" #include +#include #include #include #include @@ -255,7 +256,7 @@ void* guac_kubernetes_client_thread(void* data) { kubernetes_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 (kubernetes_client->term == NULL) { diff --git a/src/protocols/kubernetes/settings.c b/src/protocols/kubernetes/settings.c index fd93509c..5da7d8be 100644 --- a/src/protocols/kubernetes/settings.c +++ b/src/protocols/kubernetes/settings.c @@ -21,6 +21,7 @@ #include "settings.h" #include "terminal/terminal.h" +#include #include #include @@ -255,7 +256,7 @@ guac_kubernetes_settings* guac_kubernetes_parse_args(guac_user* user, } guac_kubernetes_settings* settings = - calloc(1, sizeof(guac_kubernetes_settings)); + guac_mem_zalloc(sizeof(guac_kubernetes_settings)); /* Read hostname */ settings->hostname = @@ -411,35 +412,35 @@ guac_kubernetes_settings* guac_kubernetes_parse_args(guac_user* user, void guac_kubernetes_settings_free(guac_kubernetes_settings* settings) { /* Free network connection information */ - free(settings->hostname); + guac_mem_free(settings->hostname); /* Free Kubernetes pod/container details */ - free(settings->kubernetes_namespace); - free(settings->kubernetes_pod); - free(settings->kubernetes_container); + guac_mem_free(settings->kubernetes_namespace); + guac_mem_free(settings->kubernetes_pod); + guac_mem_free(settings->kubernetes_container); /* Free Kubernetes exec command */ - free(settings->exec_command); + guac_mem_free(settings->exec_command); /* Free SSL/TLS details */ - free(settings->client_cert); - free(settings->client_key); - free(settings->ca_cert); + guac_mem_free(settings->client_cert); + guac_mem_free(settings->client_key); + guac_mem_free(settings->ca_cert); /* 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 overall structure */ - free(settings); + guac_mem_free(settings); }