From: Jason A. Donenfeld Date: Tue, 31 Oct 2017 17:13:31 +0000 (+0100) Subject: wg-quick: fsync the temporary file before renaming X-Git-Tag: v1.0.20191226~189 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e313371cccc13c742a4ed3daaa4d826937f6596;p=thirdparty%2Fwireguard-tools.git 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 Signed-off-by: Jason A. Donenfeld --- diff --git a/src/wg-quick.bash b/src/wg-quick.bash index da4c0d4..7dc8be1 100755 --- a/src/wg-quick.bash +++ b/src/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"