From: Bastian Dehn Date: Sun, 5 Jan 2025 11:43:35 +0000 (+0100) Subject: fix memory leak config string X-Git-Tag: v1.0.24^2~8 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=9585d13b57b1f8f0759b527bf7d8876d81832473;p=sane-kds-s2000w-net.git fix memory leak config string --- diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 5bce98a..8968974 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -94,9 +94,12 @@ void kds_s2000w_client_init() { debug_printf(ALL, "kds_s2000w_client_init"); - const char* config_stream = read_config_file(CONFIG_FILE); + char* config_stream = read_config_file(CONFIG_FILE); config = load_config(config_stream); curl = curl_easy_init(); + + free(config_stream); + config_stream = NULL; } void kds_s2000w_client_free() diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index fc2085b..2552e2e 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -21,7 +21,7 @@ void free_config(program_config* config) config = NULL; } -const char* read_config_file(const char* filename) +char* read_config_file(const char* filename) { FILE* config_file = fopen(filename, "r"); char* buf = malloc(sizeof(char)); @@ -38,7 +38,7 @@ const char* read_config_file(const char* filename) fclose(config_stream); config_stream = NULL; - const char* config_string = *mem; + char* config_string = *mem; free(buf); buf = NULL; @@ -50,7 +50,7 @@ const char* read_config_file(const char* filename) return config_string; } -program_config* load_config(const char* config_string) +program_config* load_config(char* config_string) { program_config* config = malloc(sizeof(program_config)); config->scanner_url = malloc(sizeof(char)); diff --git a/src/kds_s2000w_config.h b/src/kds_s2000w_config.h index cd5f228..2fb229f 100644 --- a/src/kds_s2000w_config.h +++ b/src/kds_s2000w_config.h @@ -10,6 +10,6 @@ typedef struct { } program_config; void free_config(program_config* config); -const char* read_config_file(const char* filename); -program_config* load_config(const char* config_stream); +char* read_config_file(const char* filename); +program_config* load_config(char* config_stream); #endif \ No newline at end of file diff --git a/tests/kds_s2000w_read_config_tests.c b/tests/kds_s2000w_read_config_tests.c index 7f03aee..72719ff 100644 --- a/tests/kds_s2000w_read_config_tests.c +++ b/tests/kds_s2000w_read_config_tests.c @@ -41,7 +41,7 @@ void kds_s2000w_config_read_empty_config() void kds_s2000w_config_read_parameter() { - const char* input_stream = " scanner_url = http://scanner.example.com \n"; + char* input_stream = " scanner_url = http://scanner.example.com \n"; program_config* config = load_config(input_stream); @@ -53,7 +53,7 @@ void kds_s2000w_config_read_parameter() void kds_s2000w_config_read_parameters_without_trim() { - const char* input_stream = "scanner_url=http://scanner.example.com\n"; + char* input_stream = "scanner_url=http://scanner.example.com\n"; program_config* config = load_config(input_stream); @@ -65,7 +65,7 @@ void kds_s2000w_config_read_parameters_without_trim() void kds_s2000w_config_multiple_parameters() { - const char* input_stream = "scanner_url=http://scanner.example.com\nusername=Mustermann\n"; + char* input_stream = "scanner_url=http://scanner.example.com\nusername=Mustermann\n"; program_config* config = load_config(input_stream); @@ -79,7 +79,7 @@ void kds_s2000w_config_multiple_parameters() void kds_s200w_config_heartbeat_five_seconds() { - const char* input_stream = "heartbeat_seconds = 5\n"; + char* input_stream = "heartbeat_seconds = 5\n"; program_config* config = load_config(input_stream); @@ -91,7 +91,7 @@ void kds_s200w_config_heartbeat_five_seconds() void kds_s200w_config_default_heartbeat_zero_set_default() { - const char* input_stream = "heartbeat_seconds = 0\n"; + char* input_stream = "heartbeat_seconds = 0\n"; program_config* config = load_config(input_stream); @@ -103,7 +103,7 @@ void kds_s200w_config_default_heartbeat_zero_set_default() void kds_s200w_config_ssl_verify_on() { - const char* input_stream = "ssl_verify = true\n"; + char* input_stream = "ssl_verify = true\n"; program_config* config = load_config(input_stream);