Mercurial > dovecot > core-2.2
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)