[PATCH] casperd should detach from controlling session
Pawel Jakub Dawidek
pjd at FreeBSD.org
Mon Mar 17 09:24:45 UTC 2014
On Thu, Mar 13, 2014 at 02:08:36PM -0700, Xin Li wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> Hi, Pawel,
>
> I have noticed that casperd's child (zygote) would still use
> controlling session from parent. This can be observed by running ps
> - -ax on systems running casperd, where the child have a spurious
> console associated.
>
> The attached patch would fix it. May I commit it against -HEAD?
Hmm, daemon(3) does call setsid(2) already... Are you sure casperd
wasn't running with -F?
> By the way, the zygote child also closes file descriptor 4 twice
> (harmless; it's either sp[0] or the /dev/null which is closed before
> starting zygote_main, or before returning from stdnull(). Based on
> the construct of the code, I believe both close() can be omitted. If
> this makes sense I'll submit a new patch.
I'd prefer to leave stdnull() as-is. I open /dev/null there and I close
it in the same function. Not closing it there would make it confusing
and would make function reuse error-prone.
If 'sock' has even higher number we will call close(2) on non-open
descriptors, but this is because there is no closerange(from, to)
syscall.
If you meant something else, do send me the patch and I can comment
further.
> Index: sbin/casperd/zygote.c
> ===================================================================
> --- sbin/casperd/zygote.c (revision 263112)
> +++ sbin/casperd/zygote.c (working copy)
> @@ -63,6 +63,9 @@ stdnull(void)
> if (fd == -1)
> errx(1, "Unable to open %s", _PATH_DEVNULL);
>
> + if (setsid() == -1)
> + errx(1, "Unable to detach from session");
> +
> if (dup2(fd, STDIN_FILENO) == -1)
> errx(1, "Unable to cover stdin");
> if (dup2(fd, STDOUT_FILENO) == -1)
--
Pawel Jakub Dawidek http://www.wheelsystems.com
FreeBSD committer http://www.FreeBSD.org
Am I Evil? Yes, I Am! http://mobter.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-security/attachments/20140317/2ca3071a/attachment.sig>
More information about the freebsd-security
mailing list