diff --git a/sefht.geany b/sefht.geany
index d8fa36a181da1d9b8ded66d63edae3d483e2691b..15cdf99d5df711cd7aae3359c398f1f03434b87a 100644
--- a/sefht.geany
+++ b/sefht.geany
@@ -28,7 +28,7 @@ long_line_behaviour=1
 long_line_column=72
 
 [files]
-current_page=34
+current_page=58
 FILE_NAME_0=139;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2FREADME;0;8
 FILE_NAME_1=161;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2F.gitignore;0;8
 FILE_NAME_2=170;Sh;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fconfigure.ac;0;8
@@ -78,8 +78,8 @@ FILE_NAME_45=218;Sh;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fp
 FILE_NAME_46=23;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_cms.c;0;8
 FILE_NAME_47=24;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_data.c;0;8
 FILE_NAME_48=1772;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_fragment.c;0;8
-FILE_NAME_49=130867;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_node_fragment.c;0;8
-FILE_NAME_50=5714;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_text_fragment.c;0;8
+FILE_NAME_49=5131;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_node_fragment.c;0;8
+FILE_NAME_50=8462;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_text_fragment.c;0;8
 FILE_NAME_51=24;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_attr.c;0;8
 FILE_NAME_52=12892;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_text.c;0;8
 FILE_NAME_53=15898;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_text_segment.c;0;8
@@ -87,7 +87,7 @@ FILE_NAME_54=994;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fpr
 FILE_NAME_55=926;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_validator.c;0;8
 FILE_NAME_56=20787;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_validator_tag.c;0;8
 FILE_NAME_57=58751;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftests%2Ftest_validator_attr.c;0;8
-FILE_NAME_58=626;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftodo.txt;0;8
+FILE_NAME_58=130;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Ftodo.txt;0;8
 FILE_NAME_59=4505;YAML;0;EUTF-8;0;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2F.gitlab-ci.yml;0;4
 FILE_NAME_60=71;Sh;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fgitlab-ci%2Fupload.sh.in;0;8
 FILE_NAME_61=683;Sh;0;EUTF-8;0;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fgitlab-ci%2Frelease.sh.in;0;4
diff --git a/tests/test_node_fragment.c b/tests/test_node_fragment.c
index 056b828cdf6929a374ee5aa798875979480bcb8e..824e3f02bb228f42e0897d26f1e4013b769e6ed3 100644
--- a/tests/test_node_fragment.c
+++ b/tests/test_node_fragment.c
@@ -102,6 +102,7 @@ START_TEST(test_node_fragment_with_status)
 	           SH_NodeFragment_new (no_tag, data, &status);
 	ck_assert_ptr_eq (NULL, fragment);
 	ck_assert_int_eq (E_VALUE, status.status);
+	free (status.message);
 
 	/* test - valid tag */
 	_status_preinit (status);
@@ -190,6 +191,7 @@ START_TEST(test_node_fragment_raw_with_status)
 	           SH_NodeFragment_raw_new (no_tag, data, &status);
 	ck_assert_ptr_eq (NULL, fragment);
 	ck_assert_int_eq (E_VALUE, status.status);
+	free (status.message);
 
 	/* test - valid tag */
 	_status_preinit (status);
diff --git a/tests/test_text_fragment.c b/tests/test_text_fragment.c
index 2e048f1cdbd2a51dfc2577730434266dad766368..a98ce13d9f24c2859cd49c1e6925c3f46ca95c31 100644
--- a/tests/test_text_fragment.c
+++ b/tests/test_text_fragment.c
@@ -199,6 +199,7 @@ START_TEST(test_text_fragment_html_inline_no_status)
 	                          "sentence.");
 
 	/* cleanup */
+	free (string);
 	SH_Text_free (text);
 	SH_TextFragment_free (fragment);
 	SH_Data_free (data);
@@ -242,6 +243,7 @@ START_TEST(test_text_fragment_html_inline_with_status)
 	                          "sentence.");
 
 	/* cleanup */
+	free (string);
 	SH_Text_free (text);
 	SH_TextFragment_free (fragment);
 	SH_Data_free (data);
@@ -282,6 +284,7 @@ START_TEST(test_text_fragment_html_wrap_no_status)
 	                          "\tsentence.\n");
 
 	/* cleanup */
+	free (string);
 	SH_Text_free (text);
 	SH_TextFragment_free (fragment);
 	SH_Data_free (data);
@@ -325,6 +328,7 @@ START_TEST(test_text_fragment_html_wrap_with_status)
 	                          "\tsentence.\n");
 
 	/* cleanup */
+	free (string);
 	SH_Text_free (text);
 	SH_TextFragment_free (fragment);
 	SH_Data_free (data);
diff --git a/todo.txt b/todo.txt
index 091d83ab5fafbc550fea6ca5c9bb2be6616f0099..2d94b2162dee7ae13abda7fc1e79f168dd6b64ec 100644
--- a/todo.txt
+++ b/todo.txt
@@ -5,6 +5,8 @@ create Docs
 remove -Wno-nonnull from AM_CFLAGS
 fix warnings for tests
 
+fix leaks on heap-allocated error messages
+
 Fragment:
 - create html on single Text object
 - add customized styling in html generation