aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib/param/param.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/systemlib/param/param.c')
-rw-r--r--src/modules/systemlib/param/param.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/modules/systemlib/param/param.c b/src/modules/systemlib/param/param.c
index 69a9bdf9b..24b52d1a9 100644
--- a/src/modules/systemlib/param/param.c
+++ b/src/modules/systemlib/param/param.c
@@ -505,8 +505,15 @@ param_get_default_file(void)
int
param_save_default(void)
{
+ int result;
+
/* delete the file in case it exists */
- unlink(param_get_default_file());
+ struct stat buffer;
+ if (stat(param_get_default_file(), &buffer) == 0) {
+ result = unlink(param_get_default_file());
+ if (result != OK)
+ warnx("unlinking file %s failed.", param_get_default_file());
+ }
/* create the file */
int fd = open(param_get_default_file(), O_WRONLY | O_CREAT | O_EXCL);
@@ -516,7 +523,7 @@ param_save_default(void)
return -1;
}
- int result = param_export(fd, false);
+ result = param_export(fd, false);
close(fd);
if (result != 0) {