diff --git a/src/modules/dataman/dataman.c b/src/modules/dataman/dataman.c index e48b0b5c89..3dd443621a 100644 --- a/src/modules/dataman/dataman.c +++ b/src/modules/dataman/dataman.c @@ -672,12 +672,7 @@ task_main(int argc, char *argv[]) } /* Open or create the data manager file */ - g_task_fd = open(k_data_manager_device_path, O_RDWR | O_CREAT | O_BINARY -#ifdef __PX4_LINUX - // Open with read/write permission for user - , S_IRUSR | S_IWUSR -#endif - ); + g_task_fd = open(k_data_manager_device_path, O_RDWR | O_CREAT | O_BINARY, PX4_O_MODE_666); if (g_task_fd < 0) { warnx("Could not open data manager file %s", k_data_manager_device_path); diff --git a/src/modules/mavlink/mavlink_ftp.cpp b/src/modules/mavlink/mavlink_ftp.cpp index 6756b9dcbc..c074d1dde6 100644 --- a/src/modules/mavlink/mavlink_ftp.cpp +++ b/src/modules/mavlink/mavlink_ftp.cpp @@ -455,7 +455,8 @@ MavlinkFTP::_workOpen(PayloadHeader* payload, int oflag) } fileSize = st.st_size; - int fd = ::open(filename, oflag); + // Set mode to 666 incase oflag has O_CREAT + int fd = ::open(filename, oflag, PX4_O_MODE_666); if (fd < 0) { return kErrFailErrno; } diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c index f35963d885..270804075e 100644 --- a/src/modules/sdlog2/sdlog2.c +++ b/src/modules/sdlog2/sdlog2.c @@ -505,7 +505,7 @@ int open_log_file() } } - int fd = open(log_file_path, O_CREAT | O_WRONLY | O_DSYNC, 0x0777); + int fd = open(log_file_path, O_CREAT | O_WRONLY | O_DSYNC, PX4_O_MODE_666); if (fd < 0) { mavlink_and_console_log_critical(mavlink_fd, "[sdlog2] failed opening: %s", log_file_name); diff --git a/src/modules/systemlib/param/param.c b/src/modules/systemlib/param/param.c index 1bf986753d..24bc9e73a6 100644 --- a/src/modules/systemlib/param/param.c +++ b/src/modules/systemlib/param/param.c @@ -728,7 +728,7 @@ param_save_default(void) const char *filename = param_get_default_file(); /* write parameters to temp file */ - fd = PARAM_OPEN(filename, O_WRONLY | O_CREAT, 0x777); + fd = PARAM_OPEN(filename, O_WRONLY | O_CREAT, PX4_O_MODE_666); if (fd < 0) { warn("failed to open param file: %s", filename); diff --git a/src/platforms/px4_defines.h b/src/platforms/px4_defines.h index ac3b15eb9b..d2cc7c2439 100644 --- a/src/platforms/px4_defines.h +++ b/src/platforms/px4_defines.h @@ -107,6 +107,11 @@ typedef param_t px4_param_t; #define PX4_ISFINITE(x) isfinite(x) +// mode for open with O_CREAT +#define PX4_O_MODE_777 0777 +#define PX4_O_MODE_666 0666 +#define PX4_O_MODE_600 0600 + #ifndef PRIu64 #define PRIu64 "llu" #endif @@ -119,6 +124,12 @@ typedef param_t px4_param_t; // Flag is meaningless on Linux #define O_BINARY 0 +// mode for open with O_CREAT +#define PX4_O_MODE_777 (S_IRWXU | S_IRWXG | S_IRWXO) +#define PX4_O_MODE_666 (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH ) +#define PX4_O_MODE_600 (S_IRUSR | S_IWUSR) + + // NuttX _IOC is equivalent to Linux _IO #define _PX4_IOC(x,y) _IO(x,y) diff --git a/src/systemcmds/param/param.c b/src/systemcmds/param/param.c index 1609ddcf6a..4aa1d185fd 100644 --- a/src/systemcmds/param/param.c +++ b/src/systemcmds/param/param.c @@ -202,7 +202,7 @@ static int do_save(const char *param_file_name) { /* create the file */ - int fd = open(param_file_name, O_WRONLY | O_CREAT, 0x777); + int fd = open(param_file_name, O_WRONLY | O_CREAT, PX4_O_MODE_666); if (fd < 0) { warn("opening '%s' failed", param_file_name); diff --git a/src/systemcmds/tests/test_file2.c b/src/systemcmds/tests/test_file2.c index 2e7b5c184f..6adaa7709b 100644 --- a/src/systemcmds/tests/test_file2.c +++ b/src/systemcmds/tests/test_file2.c @@ -73,7 +73,7 @@ static void test_corruption(const char *filename, uint32_t write_chunk, uint32_t filename, (unsigned)write_chunk, (unsigned)write_size); uint32_t ofs = 0; - int fd = open(filename, O_CREAT | O_RDWR | O_TRUNC); + int fd = open(filename, O_CREAT | O_RDWR | O_TRUNC, PX4_O_MODE_666); if (fd == -1) { perror(filename); diff --git a/src/systemcmds/tests/test_mount.c b/src/systemcmds/tests/test_mount.c index 107d616b6c..2634965d28 100644 --- a/src/systemcmds/tests/test_mount.c +++ b/src/systemcmds/tests/test_mount.c @@ -163,7 +163,7 @@ test_mount(int argc, char *argv[]) } else { /* this must be the first iteration, do something */ - cmd_fd = open(cmd_filename, O_TRUNC | O_WRONLY | O_CREAT); + cmd_fd = open(cmd_filename, O_TRUNC | O_WRONLY | O_CREAT, PX4_O_MODE_666); warnx("First iteration of file test\n"); }