change permissions before fsync()
[libi2ncommon] / src / oftmpstream.cpp
index d847cd7..71fadd4 100644 (file)
@@ -1,8 +1,28 @@
+/*
+The software in this package is distributed under the GNU General
+Public License version 2 (with a special exception described below).
+
+A copy of GNU General Public License (GPL) is included in this distribution,
+in the file COPYING.GPL.
+
+As a special exception, if other files instantiate templates or use macros
+or inline functions from this file, or you compile this file and link it
+with other works to produce a work based on this file, this file
+does not by itself cause the resulting work to be covered
+by the GNU General Public License.
+
+However the source code for this file must still be made available
+in accordance with section (3) of the GNU General Public License.
+
+This exception does not invalidate any other reasons why a work based
+on this file might be covered by the GNU General Public License.
+*/
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/stat.h>
 #include <errno.h>
+#include <string.h>
 
 #include <oftmpstream.hxx>
 
@@ -101,8 +121,8 @@ void oftmpstream::close()
     if (!is_open)
         return;
 
-    fsync(fd);
     fchmod (fd, file_mode);    // fix/change mkstemp permissions
+    fsync(fd);
     ::close (fd);
 
     if (rename (tmpname.c_str(), realname.c_str()) != 0)