RE: [PATCH 2/2] tools: hv: Use CLOEXEC when opening kvp_pool files

From: KY Srinivasan
Date: Thu Jan 10 2013 - 15:25:50 EST




> -----Original Message-----
> From: Tomas Hozza [mailto:thozza@xxxxxxxxxx]
> Sent: Tuesday, January 08, 2013 6:27 AM
> To: gregkh@xxxxxxxxxxxxxxxxxxx
> Cc: KY Srinivasan; jasowang@xxxxxxxxxx; Haiyang Zhang; linux-
> kernel@xxxxxxxxxxxxxxx; Hashir Abdi; Tomas Hozza
> Subject: [PATCH 2/2] 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@xxxxxxxxxx>
Acked-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx

> ---
> tools/hv/hv_kvp_daemon.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c
> index 6b56b75..31f839cc 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)
> */
> kvp_acquire_lock(pool);
>
> - filep = fopen(kvp_file_info[pool].fname, "w");
> + filep = fopen(kvp_file_info[pool].fname, "we");
> if (!filep) {
> kvp_release_lock(pool);
> syslog(LOG_ERR, "Failed to open file, pool: %d", pool);
> @@ -182,7 +182,7 @@ static void kvp_update_mem_state(int pool)
>
> kvp_acquire_lock(pool);
>
> - filep = fopen(kvp_file_info[pool].fname, "r");
> + filep = fopen(kvp_file_info[pool].fname, "re");
> if (!filep) {
> kvp_release_lock(pool);
> syslog(LOG_ERR, "Failed to open file, pool: %d", pool);
> @@ -246,13 +246,13 @@ static int kvp_file_init(void)
> records_read = 0;
> num_blocks = 1;
> sprintf(fname, "/var/opt/hyperv/.kvp_pool_%d", i);
> - fd = open(fname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR |
> S_IROTH);
> + fd = open(fname, O_RDWR | O_CREAT | O_CLOEXEC, S_IRUSR |
> S_IWUSR | S_IROTH);
>
> if (fd == -1)
> return 1;
>
>
> - filep = fopen(fname, "r");
> + filep = fopen(fname, "re");
> if (!filep)
> return 1;
>
> --
> 1.7.11.7
>
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/