diff options
| author | Tomas Hozza <thozza@redhat.com> | 2013-01-18 09:23:41 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-18 19:03:34 -0500 |
| commit | 8467fdbb09ca0766b638171723624f3da8703055 (patch) | |
| tree | 35ee42184fc4935fdafa9cebd1d26d0031cef912 /tools | |
| parent | 0f3f2f86b22c41bb102a15ca4ca7f41c7414ab0d (diff) | |
tools: hv: Use CLOEXEC when opening kvp_pool files
Use CLOEXEC flag when opening kvp_pool_x files to prevent file
descriptor leakage. Not using it was causing a problem when
SELinux was enabled.
Signed-off-by: Tomas Hozza <thozza@redhat.com>
Acked-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/hv/hv_kvp_daemon.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c index 384051745c5e..c800ea4c8bf9 100644 --- a/tools/hv/hv_kvp_daemon.c +++ b/tools/hv/hv_kvp_daemon.c | |||
| @@ -151,7 +151,7 @@ static void kvp_update_file(int pool) | |||
| 151 | */ | 151 | */ |
| 152 | kvp_acquire_lock(pool); | 152 | kvp_acquire_lock(pool); |
| 153 | 153 | ||
| 154 | filep = fopen(kvp_file_info[pool].fname, "w"); | 154 | filep = fopen(kvp_file_info[pool].fname, "we"); |
| 155 | if (!filep) { | 155 | if (!filep) { |
| 156 | kvp_release_lock(pool); | 156 | kvp_release_lock(pool); |
| 157 | syslog(LOG_ERR, "Failed to open file, pool: %d", pool); | 157 | syslog(LOG_ERR, "Failed to open file, pool: %d", pool); |
| @@ -182,7 +182,7 @@ static void kvp_update_mem_state(int pool) | |||
| 182 | 182 | ||
| 183 | kvp_acquire_lock(pool); | 183 | kvp_acquire_lock(pool); |
| 184 | 184 | ||
| 185 | filep = fopen(kvp_file_info[pool].fname, "r"); | 185 | filep = fopen(kvp_file_info[pool].fname, "re"); |
| 186 | if (!filep) { | 186 | if (!filep) { |
| 187 | kvp_release_lock(pool); | 187 | kvp_release_lock(pool); |
| 188 | syslog(LOG_ERR, "Failed to open file, pool: %d", pool); | 188 | syslog(LOG_ERR, "Failed to open file, pool: %d", pool); |
| @@ -246,13 +246,13 @@ static int kvp_file_init(void) | |||
| 246 | records_read = 0; | 246 | records_read = 0; |
| 247 | num_blocks = 1; | 247 | num_blocks = 1; |
| 248 | sprintf(fname, "%s/.kvp_pool_%d", KVP_CONFIG_LOC, i); | 248 | sprintf(fname, "%s/.kvp_pool_%d", KVP_CONFIG_LOC, i); |
| 249 | fd = open(fname, O_RDWR | O_CREAT, 0644 /* rw-r--r-- */); | 249 | fd = open(fname, O_RDWR | O_CREAT | O_CLOEXEC, 0644 /* rw-r--r-- */); |
| 250 | 250 | ||
| 251 | if (fd == -1) | 251 | if (fd == -1) |
| 252 | return 1; | 252 | return 1; |
| 253 | 253 | ||
| 254 | 254 | ||
| 255 | filep = fopen(fname, "r"); | 255 | filep = fopen(fname, "re"); |
| 256 | if (!filep) | 256 | if (!filep) |
| 257 | return 1; | 257 | return 1; |
| 258 | 258 | ||
