diff options
author | rubidium <rubidium@openttd.org> | 2009-02-22 02:57:15 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-02-22 02:57:15 +0000 |
commit | 54f852f0948a686ae6d213f907310e358a1f1fb4 (patch) | |
tree | 379b3afc640f578ec71255abc9ec4b97972c91ab | |
parent | 731c1e90e85fbc48c59a6c94e293ca211083b1e6 (diff) | |
download | openttd-54f852f0948a686ae6d213f907310e358a1f1fb4.tar.xz |
(svn r15552) -Fix (r15544): some compiler/OS combinations don't like closing the same FD twice and zlib's docs weren't very clear about whether it would close a FD it didn't open.
-rw-r--r-- | src/network/network_content.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index 7f6dd75ae..42077ca08 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -324,8 +324,14 @@ static bool GunzipFile(const ContentInfo *ci) } exit: - if (fin != NULL) gzclose(fin); - if (ftmp != NULL) fclose(ftmp); + if (fin != NULL) { + /* Closes ftmp too! */ + gzclose(fin); + } else if (ftmp != NULL) { + /* In case the gz stream was opened correctly this will + * be closed by gzclose. */ + fclose(ftmp); + } if (fout != NULL) fclose(fout); return ret; |