aboutsummaryrefslogtreecommitdiff
path: root/Source/DOH
diff options
context:
space:
mode:
authorMarcelo Matus <mmatus@acms.arizona.edu>2006-01-17 00:52:34 +0000
committerMarcelo Matus <mmatus@acms.arizona.edu>2006-01-17 00:52:34 +0000
commitcbf380096042be5c4a1f63c800a1b271ac2fc2ce (patch)
treea40e798bcf680d9ccd576c8036c04b8543b1f2d9 /Source/DOH
parentea0a0dde9e99daef460d0069cc9fd03bd789038e (diff)
downloadswig-cbf380096042be5c4a1f63c800a1b271ac2fc2ce.tar.gz
add checking code for fwrite, problem reported by Michal Marek
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8472 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Source/DOH')
-rw-r--r--Source/DOH/file.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Source/DOH/file.c b/Source/DOH/file.c
index 7a6f12fd2..44c72191e 100644
--- a/Source/DOH/file.c
+++ b/Source/DOH/file.c
@@ -71,7 +71,9 @@ static int
File_write(DOH *fo, void *buffer, int len) {
DohFile *f = (DohFile *) ObjData(fo);
if (f->filep) {
- return fwrite(buffer,1,len,f->filep);
+ int ret = (int) fwrite(buffer, 1, len, f->filep);
+ int err = (ret != len) ? ferror(f->filep) : 0;
+ return err ? -1: ret;
} else if (f->fd) {
#ifdef DOH_INTFILE
return write(f->fd,buffer,len);