Author: kelnos Date: 2009-03-11 23:35:58 +0000 (Wed, 11 Mar 2009) New Revision: 29651
Modified: xfconf/trunk/NEWS xfconf/trunk/configure.ac.in xfconf/trunk/xfconfd/xfconf-backend-perchannel-xml.c Log: be a bit safer when writing out channel files Modified: xfconf/trunk/NEWS =================================================================== --- xfconf/trunk/NEWS 2009-03-11 18:00:30 UTC (rev 29650) +++ xfconf/trunk/NEWS 2009-03-11 23:35:58 UTC (rev 29651) @@ -1,3 +1,10 @@ +Xfce 4.6.1 +========== + + * Be a bit safer when writing out channel xml files: flush data to disk + using fdatasync()/fsync() before renaming over the old file. + + Xfce 4.6.0 ========== Modified: xfconf/trunk/configure.ac.in =================================================================== --- xfconf/trunk/configure.ac.in 2009-03-11 18:00:30 UTC (rev 29650) +++ xfconf/trunk/configure.ac.in 2009-03-11 23:35:58 UTC (rev 29651) @@ -13,7 +13,7 @@ m4_define([xfconf_version_micro], [0]) m4_define([xfconf_version_nano], []) m4_define([xfconf_version_build], [...@revision@]) -m4_define([xfconf_version_tag], []) +m4_define([xfconf_version_tag], [svn]) m4_define([xfconf_version], [xfconf_version_major().xfconf_version_minor().xfconf_version_micro()ifelse(xfconf_version_nano(), [], [], [.xfconf_version_nano()])ifelse(xfconf_version_tag(), [svn], [xfconf_version_tag()-xfconf_version_build()], [xfconf_version_tag()])]) dnl init autoconf @@ -45,7 +45,7 @@ sys/stat.h sys/time.h sys/types.h sys/wait.h \ unistd.h]) dnl AC_CHECK_FUNCS([fdwalk getdtablesize setlocale setsid sysconf]) -AC_CHECK_FUNCS([setlocale]) +AC_CHECK_FUNCS([fdatasync fsync setlocale]) dnl version information XFCONF_VERSION=xfconf_version Modified: xfconf/trunk/xfconfd/xfconf-backend-perchannel-xml.c =================================================================== --- xfconf/trunk/xfconfd/xfconf-backend-perchannel-xml.c 2009-03-11 18:00:30 UTC (rev 29650) +++ xfconf/trunk/xfconfd/xfconf-backend-perchannel-xml.c 2009-03-11 23:35:58 UTC (rev 29651) @@ -1,7 +1,7 @@ /* * xfconf * - * Copyright (c) 2007 Brian Tarricone <bj...@cornell.edu> + * Copyright (c) 2007-2009 Brian Tarricone <bj...@cornell.edu> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1934,6 +1934,19 @@ if(fputs("</channel>\n", fp) == EOF) goto out; + if(fflush(fp)) + goto out; + +#if defined(HAVE_FDATASYNC) + if(fdatasync(fileno(fp))) + goto out; +#elif defined(HAVE_FSYNC) + if(fsync(fileno(fp))) + goto out; +#else + sync(); +#endif + if(fclose(fp)) { fp = NULL; goto out; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits