]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
fix memory leak config string
authorBastian Dehn <hhaalo@arcor.de>
Sun, 5 Jan 2025 11:43:35 +0000 (12:43 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 5 Jan 2025 11:43:35 +0000 (12:43 +0100)
src/kds_s2000w_client.c
src/kds_s2000w_config.c
src/kds_s2000w_config.h
tests/kds_s2000w_read_config_tests.c

index 5bce98ab3ae94fcadeaf819e2d4540543763a6d8..8968974526a64d67d19c942f70373a03e0032770 100644 (file)
@@ -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()
index fc2085b49b0b7adedce06667dda06486bd671134..2552e2e64c8d3dd12ee2076a5baf5461f9f0a091 100644 (file)
@@ -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));
index cd5f228f41797c002ae6ad235e8bd081b11c8863..2fb229fbe4643241497734dbc2930ae27b8705e7 100644 (file)
@@ -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
index 7f03aee656f6b200652460b0e0b433fc1624cc66..72719ffd2a5d0b76962321e2238160b9f6ff0efe 100644 (file)
@@ -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);