Tools: hv: kvp: ensure kvp device fd is closed on exec
authorVitaly Kuznetsov <vkuznets@redhat.com>
Thu, 7 Jul 2016 01:24:10 +0000 (18:24 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Apr 2017 07:09:33 +0000 (09:09 +0200)
commit 26840437cbd6d3625ea6ab34e17cd34bb810c861 upstream.

KVP daemon does fork()/exec() (with popen()) so we need to close our fds
to avoid sharing them with child processes. The immediate implication of
not doing so I see is SELinux complaining about 'ip' trying to access
'/dev/vmbus/hv_kvp'.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/hv/hv_kvp_daemon.c

index 0d9f48ec42bbb66366d1b35dab04af94eb152901..bc7adb84e679cdd237b60646255b425819c5f5b0 100644 (file)
@@ -1433,7 +1433,7 @@ int main(int argc, char *argv[])
        openlog("KVP", 0, LOG_USER);
        syslog(LOG_INFO, "KVP starting; pid is:%d", getpid());
 
-       kvp_fd = open("/dev/vmbus/hv_kvp", O_RDWR);
+       kvp_fd = open("/dev/vmbus/hv_kvp", O_RDWR | O_CLOEXEC);
 
        if (kvp_fd < 0) {
                syslog(LOG_ERR, "open /dev/vmbus/hv_kvp failed; error: %d %s",