Diff between e1713aa11d83c30531ed503ec59dab94de43f87f and 20340654cf4221da492cc5bc26764dfba5f80c9b

Changed Files

File Additions Deletions Status
obexd/client/transfer.c +10 -7 modified

Full Patch

diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index cb7c26c..76f6681 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
@@ -419,12 +419,15 @@ struct obc_transfer *obc_transfer_put(const char *type, const char *name,
 
 		w = write(transfer->fd, contents, size);
 		if (w < 0) {
-			error("write(): %s(%d)", strerror(errno), errno);
-			perr = -errno;
+			perr = errno;
+			error("write(): %s(%d)", strerror(perr), perr);
+			g_set_error(err, OBC_TRANSFER_ERROR, -perr,
+						"Writing to file failed");
 			goto fail;
 		} else if ((size_t) w != size) {
 			error("Unable to write all contents to file");
-			perr = -EFAULT;
+			g_set_error(err, OBC_TRANSFER_ERROR, -EFAULT,
+					"Writing all contents to file failed");
 			goto fail;
 		}
 	} else {
@@ -432,10 +435,10 @@ struct obc_transfer *obc_transfer_put(const char *type, const char *name,
 			goto fail;
 	}
 
-	perr = fstat(transfer->fd, &st);
-	if (perr < 0) {
-		error("fstat(): %s(%d)", strerror(errno), errno);
-		g_set_error(err, OBC_TRANSFER_ERROR, -errno,
+	if (fstat(transfer->fd, &st) < 0) {
+		perr = errno;
+		error("fstat(): %s(%d)", strerror(perr), perr);
+		g_set_error(err, OBC_TRANSFER_ERROR, -perr,
 						"Unable to get file status");
 		goto fail;
 	}