From f76b74d6d79b1a08cd5da0e4fb18de74e9f1a063 Mon Sep 17 00:00:00 2001 From: Jacques Vidrine Date: Wed, 11 Sep 2002 16:41:39 +0000 Subject: [PATCH] In kvm_openfiles/kvm_open, mark the file descriptors as close-on-exec. Applications can not do this themselves, as the descriptors are hidden behind the opaque `kvm_t' type. --- lib/libkvm/kvm.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/libkvm/kvm.c b/lib/libkvm/kvm.c index f0a635289b7..08020783b3c 100644 --- a/lib/libkvm/kvm.c +++ b/lib/libkvm/kvm.c @@ -180,6 +180,10 @@ _kvm_open(kd, uf, mf, flag, errout) _kvm_syserr(kd, kd->program, "%s", mf); goto failed; } + if (fcntl(kd->pmfd, F_SETFD, FD_CLOEXEC) < 0) { + _kvm_syserr(kd, kd->program, "%s", mf); + goto failed; + } if (S_ISCHR(st.st_mode)) { /* * If this is a character special device, then check that @@ -198,6 +202,10 @@ _kvm_open(kd, uf, mf, flag, errout) _kvm_syserr(kd, kd->program, "%s", _PATH_KMEM); goto failed; } + if (fcntl(kd->vmfd, F_SETFD, FD_CLOEXEC) < 0) { + _kvm_syserr(kd, kd->program, "%s", _PATH_KMEM); + goto failed; + } } } else { /* @@ -209,6 +217,10 @@ _kvm_open(kd, uf, mf, flag, errout) _kvm_syserr(kd, kd->program, "%s", uf); goto failed; } + if (fcntl(kd->nlfd, F_SETFD, FD_CLOEXEC) < 0) { + _kvm_syserr(kd, kd->program, "%s", uf); + goto failed; + } if (_kvm_initvtop(kd) < 0) goto failed; }