aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib/param/param.c
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-09-01 12:47:10 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-09-01 12:47:10 +0200
commit2d83c6f825db02f04624467f3d0b492ee371c72a (patch)
tree021a5793f2dbff6d6be9b14286a7c3f487d6bcb3 /src/modules/systemlib/param/param.c
parent9eff3170a3aa63d17fbaefd39619866fb745b237 (diff)
downloadpx4-firmware-2d83c6f825db02f04624467f3d0b492ee371c72a.tar.gz
px4-firmware-2d83c6f825db02f04624467f3d0b492ee371c72a.tar.bz2
px4-firmware-2d83c6f825db02f04624467f3d0b492ee371c72a.zip
Closing all opened file descriptors, fixed param save issue, tests clean
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) {