afc.c: fixed leaks in various functions when an invalid argument error is returned.
diff --git a/src/afc.c b/src/afc.c
index 7304d97..1263eb9 100644
--- a/src/afc.c
+++ b/src/afc.c
@@ -531,13 +531,13 @@
 
 afc_error_t afc_rename_path(afc_client_t client, const char *from, const char *to)
 {
+	if (!client || !from || !to || !client->afc_packet || !client->parent)
+		return AFC_E_INVALID_ARG;
+
 	char *buffer = (char *) malloc(sizeof(char) * (strlen(from) + strlen(to) + 1 + sizeof(uint32_t)));
 	uint32_t bytes = 0;
 	afc_error_t ret = AFC_E_UNKNOWN_ERROR;
 
-	if (!client || !from || !to || !client->afc_packet || !client->parent)
-		return AFC_E_INVALID_ARG;
-
 	afc_lock(client);
 
 	/* Send command */
@@ -910,14 +910,14 @@
 
 afc_error_t afc_truncate(afc_client_t client, const char *path, uint64_t newsize)
 {
+	if (!client || !path || !client->afc_packet || !client->parent)
+		return AFC_E_INVALID_ARG;
+
 	char *buffer = (char *) malloc(sizeof(char) * (strlen(path) + 1 + 8));
 	uint32_t bytes = 0;
 	uint64_t size_requested = htole64(newsize);
 	afc_error_t ret = AFC_E_UNKNOWN_ERROR;
 
-	if (!client || !path || !client->afc_packet || !client->parent)
-		return AFC_E_INVALID_ARG;
-
 	afc_lock(client);
 
 	/* Send command */
@@ -940,14 +940,14 @@
 
 afc_error_t afc_make_link(afc_client_t client, afc_link_type_t linktype, const char *target, const char *linkname)
 {
+	if (!client || !target || !linkname || !client->afc_packet || !client->parent)
+		return AFC_E_INVALID_ARG;
+
 	char *buffer = (char *) malloc(sizeof(char) * (strlen(target)+1 + strlen(linkname)+1 + 8));
 	uint32_t bytes = 0;
 	uint64_t type = htole64(linktype);
 	afc_error_t ret = AFC_E_UNKNOWN_ERROR;
 
-	if (!client || !target || !linkname || !client->afc_packet || !client->parent)
-		return AFC_E_INVALID_ARG;
-
 	afc_lock(client);
 
 	debug_info("link type: %lld", type);
@@ -974,14 +974,14 @@
 
 afc_error_t afc_set_file_time(afc_client_t client, const char *path, uint64_t mtime)
 {
+	if (!client || !path || !client->afc_packet || !client->parent)
+		return AFC_E_INVALID_ARG;
+
 	char *buffer = (char *) malloc(sizeof(char) * (strlen(path) + 1 + 8));
 	uint32_t bytes = 0;
 	uint64_t mtime_loc = htole64(mtime);
 	afc_error_t ret = AFC_E_UNKNOWN_ERROR;
 
-	if (!client || !path || !client->afc_packet || !client->parent)
-		return AFC_E_INVALID_ARG;
-
 	afc_lock(client);
 
 	/* Send command */