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> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
eb181e811c
commit
6e313371cc
|
@ -197,6 +197,7 @@ save_config() {
|
||||||
current_config="$(cmd wg showconf "$INTERFACE")"
|
current_config="$(cmd wg showconf "$INTERFACE")"
|
||||||
trap 'rm -f "$CONFIG_FILE.tmp"; exit' INT TERM EXIT
|
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"
|
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"
|
mv "$CONFIG_FILE.tmp" "$CONFIG_FILE" || die "Could not move configuration file"
|
||||||
trap - INT TERM EXIT
|
trap - INT TERM EXIT
|
||||||
umask "$old_umask"
|
umask "$old_umask"
|
||||||
|
|
Reference in New Issue