static void free_String(String* string) {
	if (string) {
		free (string->szKey);
		free (string->Value);
		free (string);
	}
}

The product reads data past the end, or before the beginning, of the intended buffer.