lkml.org 
[lkml]   [2013]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH 2/2] tools: hv: Use CLOEXEC when opening kvp_pool files
    Date


    > -----Original Message-----
    > From: Tomas Hozza [mailto:thozza@redhat.com]
    > Sent: Tuesday, January 08, 2013 6:27 AM
    > To: gregkh@linuxfoundation.org
    > Cc: KY Srinivasan; jasowang@redhat.com; Haiyang Zhang; linux-
    > kernel@vger.kernel.org; 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@redhat.com>
    Acked-by: K. Y. Srinivasan <kys@microsoft.com

    > ---
    > 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
    >
    >




    \
     
     \ /
      Last update: 2013-01-10 22:21    [W:4.158 / U:0.232 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site