|
@@ -445,14 +445,10 @@ int config_save_safe(config_t *config, const char *temp_ext,
|
|
if (*backup_ext != '.')
|
|
if (*backup_ext != '.')
|
|
dstr_cat(&backup_file, ".");
|
|
dstr_cat(&backup_file, ".");
|
|
dstr_cat(&backup_file, backup_ext);
|
|
dstr_cat(&backup_file, backup_ext);
|
|
-
|
|
|
|
- os_unlink(backup_file.array);
|
|
|
|
- os_rename(file, backup_file.array);
|
|
|
|
- } else {
|
|
|
|
- os_unlink(file);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- os_rename(temp_file.array, file);
|
|
|
|
|
|
+ if (os_safe_replace(file, temp_file.array, backup_file.array) != 0)
|
|
|
|
+ ret = CONFIG_ERROR;
|
|
|
|
|
|
cleanup:
|
|
cleanup:
|
|
pthread_mutex_unlock(&config->mutex);
|
|
pthread_mutex_unlock(&config->mutex);
|