diff options
author | Bill Marquette <billm@pfsense.org> | 2008-05-17 19:02:08 +0000 |
---|---|---|
committer | Bill Marquette <billm@pfsense.org> | 2008-05-17 19:02:08 +0000 |
commit | 90d32f5d62aea9f8964fa96be67828afc79b8cdb (patch) | |
tree | fb270d5bad9f56a33328758f3861f9d16c194693 /etc/inc/config.inc | |
parent | 7b6f313392f8ebea65803d66882287b031555425 (diff) | |
download | pfsense-90d32f5d62aea9f8964fa96be67828afc79b8cdb.zip pfsense-90d32f5d62aea9f8964fa96be67828afc79b8cdb.tar.gz |
MFC of changeset [22584]
Atomic file writing
Patch-by: David Rees
Diffstat (limited to 'etc/inc/config.inc')
-rw-r--r-- | etc/inc/config.inc | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/etc/inc/config.inc b/etc/inc/config.inc index f38cfc1..e5fbf38 100644 --- a/etc/inc/config.inc +++ b/etc/inc/config.inc @@ -1061,11 +1061,9 @@ function write_config($desc="Unknown", $backup = true) { conf_mount_rw(); /* write new configuration */ - $fd = fopen("{$g['cf_conf_path']}/config.xml", "w"); - if (!$fd) + if (!safe_write_file("{$g['cf_conf_path']}/config.xml", $xmlconfig, false)) { die("Unable to open {$g['cf_conf_path']}/config.xml for writing in write_config()\n"); - fwrite($fd, $xmlconfig); - fclose($fd); + } if($g['platform'] == "embedded") { cleanup_backupcache(5); @@ -1082,11 +1080,7 @@ function write_config($desc="Unknown", $backup = true) { $config = parse_xml_config("{$g['conf_path']}/config.xml", $g['xml_rootobj']); /* write config cache */ - $fd = @fopen("{$g['tmp_path']}/config.cache", "wb"); - if ($fd) { - fwrite($fd, serialize($config)); - fclose($fd); - } + safe_write_file("{$g['tmp_path']}/config.cache", serialize($config), true); /* tell kernel to sync fs data */ mwexec("/bin/sync"); |