Broken su in current - trying to fix myself, help needed!
韓家標 Bill Hacker
askbill at conducive.net
Thu Oct 18 12:31:59 PDT 2007
David O'Brien wrote:
> On Thu, Oct 18, 2007 at 05:36:15AM +1000, Peter Jeremy wrote:
>> This bug (or another one with identical symptoms) affects the 'su'
>> commands within the ports build system if you are using tcsh or zsh
>
> or bash
>
> It has been suggested that reverting rev 1.79 of su.c may address the issue.
>
> ----------------------------
> revision 1.79
> date: 2006/01/03 09:17:04; author: brian; state: Exp; lines: +14 -1
> Fix the other su bug reintroduced two commits ago, namely
>
> $ su
> % kill -STOP $$
>
> where su is executing (t)csh. csh's job handling is a little more
> special than that of (a)sh, bash and even zsh and blows up a little
> more spectacularly. This modification restores the original mucking
> about with the tty pgrp, but is careful to only do it when su (or
> su's child) is the foreground process
> ----------------------------
Well.... if 'blows up...' wasn't hyperbole, back in 2006, and IF calling for a
pid on a dead/nonexistent process reliably returns the *same* invalid pid tday
(100000 was cited) it might be safer for the time being to do a compare on that
value then continue the march if matched.
Belt and braces - at least 'til it can be better checked and cleaned up properly.
JFWIW, pkgdb here lists around 600 packages and on each of three test slices, 2
i386, 1 amd64.
Probably 90% were invoked from a csh, the rest with bash.
Maybe 80% were built from a terminal in xfce4, and guessing that 80% were
pkg_add'ed, rest were:
cd /usr/ports/<whichever>/<whatever> make install [-DFORCE_PKG_REGISTER].
Quite a few more attempted and failed did so for clear reasons not related to su.
Not ONE instance of any *detectable* difficulty with su as-it-is-now.
But 100% were built su'ed to root *before* running.
Bill
More information about the freebsd-current
mailing list