changeset 3860:0d5d42c49b51 HEAD

Check write()'s return value
author Timo Sirainen <tss@iki.fi>
date Fri, 13 Jan 2006 14:49:59 +0200
parents b52ea344e872
children 398dcca97d24
files src/auth/passdb-pam.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/passdb-pam.c	Fri Jan 13 14:45:42 2006 +0200
+++ b/src/auth/passdb-pam.c	Fri Jan 13 14:49:59 2006 +0200
@@ -235,7 +235,7 @@
 	struct pam_userpass userpass;
 	struct pam_conv conv;
 	enum passdb_result result;
-	int status, status2;
+	int ret, status, status2;
 	const char *str;
 	char buf_data[512];
 	buffer_t *buf;
@@ -280,7 +280,12 @@
 		buffer_append(buf, str, strlen(str));
 	}
 
-	write(fd, buf_data, buffer_get_used_size(buf));
+	if ((ret = write(fd, buf_data, buf->used)) != (int)buf->used) {
+		if (ret < 0)
+			i_error("write() failed: %m");
+		else
+			i_error("write() failed: %d != %u", ret, buf->used);
+	}
 }
 
 static void pam_child_input(void *context)