diff src/secure_save.c @ 536:d8494488d2d2

Add a wrapper to fwrite().
author zas_
date Thu, 01 May 2008 22:27:44 +0000
parents 135570a8bd96
children 8268cbe682f1
line wrap: on
line diff
--- a/src/secure_save.c	Thu May 01 21:42:22 2008 +0000
+++ b/src/secure_save.c	Thu May 01 22:27:44 2008 +0000
@@ -370,6 +370,26 @@
 	return ret;
 }
 
+/** fwrite() wrapper, set ssi->err to errno on error and return a value less than
+ * the number of elements to write. If ssi->err is set when called, it immediatly returns 0.
+ */
+size_t
+secure_fwrite(const void *ptr, size_t size, size_t nmemb, SecureSaveInfo *ssi)
+{
+	size_t ret;
+
+	if (!ssi || !ssi->fp || ssi->err) return 0;
+
+	ret = fwrite(ptr, size, nmemb, ssi->fp);
+	if (ret < nmemb)
+		{
+		ssi->err = errno;
+		secsave_errno = SS_ERR_OTHER;
+		}
+
+	return ret;
+}
+
 gchar *
 secsave_strerror(SecureSaveErrno secsave_error)
 {