aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/wg-quick.bash
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-10-31 18:13:31 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2017-10-31 18:13:31 +0100
commit2cd96429dba2cc8170a9d8dbcdb7db46902661de (patch)
treeac25fc0168dcaaa0d7b49d245622b76c48e35b85 /src/tools/wg-quick.bash
parentwg-quick: allow for saving existing interface (diff)
downloadwireguard-monolithic-historical-2cd96429dba2cc8170a9d8dbcdb7db46902661de.tar.xz
wireguard-monolithic-historical-2cd96429dba2cc8170a9d8dbcdb7db46902661de.zip
wg-quick: fsync the temporary file before renaming
This ensures that on an unclean shutdown, we either see the old content or the new content, but not empty content. Suggested-by: Ka Ho Ng <ngkaho1234@gmail.com>
Diffstat (limited to 'src/tools/wg-quick.bash')
-rwxr-xr-xsrc/tools/wg-quick.bash1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/tools/wg-quick.bash b/src/tools/wg-quick.bash
index da4c0d4..7dc8be1 100755
--- a/src/tools/wg-quick.bash
+++ b/src/tools/wg-quick.bash
@@ -197,6 +197,7 @@ save_config() {
current_config="$(cmd wg showconf "$INTERFACE")"
trap 'rm -f "$CONFIG_FILE.tmp"; exit' INT TERM EXIT
echo "${current_config/\[Interface\]$'\n'/$new_config}" > "$CONFIG_FILE.tmp" || die "Could not write configuration file"
+ sync "$CONFIG_FILE.tmp"
mv "$CONFIG_FILE.tmp" "$CONFIG_FILE" || die "Could not move configuration file"
trap - INT TERM EXIT
umask "$old_umask"