diff options
author | Marcelo Matus <mmatus@acms.arizona.edu> | 2006-01-17 00:52:34 +0000 |
---|---|---|
committer | Marcelo Matus <mmatus@acms.arizona.edu> | 2006-01-17 00:52:34 +0000 |
commit | cbf380096042be5c4a1f63c800a1b271ac2fc2ce (patch) | |
tree | a40e798bcf680d9ccd576c8036c04b8543b1f2d9 /Source/DOH | |
parent | ea0a0dde9e99daef460d0069cc9fd03bd789038e (diff) | |
download | swig-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.c | 4 |
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); |