Julian Elischer wrote:
> yes.. well in booting yuo can have a null ucred. ( I know,s
> I've hit it), but in general you are correct.
[ ... ]
> > What is the default state of td->td_ucred?
>
> on creation, NULL followed very rapidly with being set to
> p->p_ucred. (via crhold)
Non-problem, then.
> > If that's the case, then the code should be:
> >
> > if (td->td_ucred != p->p_ucred) {
> > PROC_LOCK(p);
> > if (td->td_ucred) {
> > crfree(td->td_ucred);
> > }
>
> without the if it crashes in boot sometimes.
> (this may not be true right now but was during my testing of
> the KSE kernel)
The place to fix this is by setting up a default reference to
a root/boot ucred, I think, for use by the initial process
template.
What are the consequences, if any, of me having removed the
setting the thing to NULL, during boot? I guess that it
would leave the thread cred uninitialized. Obviously, the
problem with your crash is in the crhold( NULL). 8-).
It seems to me that the test would leave threads with NULL
ucreds around as well, and just complicate things later.
Is there a reason you can't set up an initial ucred?
-- Terry
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message