Whamcloud - gitweb
LU-7057 utils: use stronger flags when opening volatile files 26/16126/2
authorJohn L. Hammond <john.hammond@intel.com>
Fri, 28 Aug 2015 18:03:52 +0000 (13:03 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 2 Sep 2015 02:44:57 +0000 (02:44 +0000)
Existing files with volatile-ish names may be accidentally opened by
llapi_create_volatile(). This is not the intent so disallow this
behavior by adding O_EXCL and O_NOFOLLOW to the flags to open().

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: I4246ec7660b154ea2aeca6c28a4704ddd9d429f8
Reviewed-on: http://review.whamcloud.com/16126
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
lustre/utils/liblustreapi.c

index ea68c7e..5cab621 100644 (file)
@@ -4645,7 +4645,9 @@ int llapi_create_volatile_idx(char *directory, int idx, int open_flags)
        if (rc >= sizeof(file_path))
                return -E2BIG;
 
-       fd = open(file_path, O_RDWR | O_CREAT | open_flags, S_IRUSR | S_IWUSR);
+       fd = open(file_path,
+                 O_RDWR | O_CREAT | O_EXCL | O_NOFOLLOW | open_flags,
+                 S_IRUSR | S_IWUSR);
        if (fd < 0) {
                llapi_error(LLAPI_MSG_ERROR, errno,
                            "Cannot create volatile file '%s' in '%s'",