Hmm.

I'm looking at in_pcbbind_setup() and this doesn't looks right
in few places.

For example: 'td' can be NULL? It is offten tested, but not always,
Line 290:
                if (sin->sin_addr.s_addr != INADDR_ANY)
                        if (prison_ip(td->td_ucred, 0, &sin->sin_addr.s_addr))
                                return(EINVAL);
td_ucred is used, but 'td' is not tested.

If this is always current thread, it can't be NULL, right?
If this not have to be current thread, we cannot touch td_ucred here,
because (from proc.h):

[...]
 *      k - only accessed by curthread
[...]
        struct ucred    *td_ucred;      /* (k) Reference to credentials. */
[...]

Not telling that we can just remove this argument if this is always
current thread.

-- 
Pawel Jakub Dawidek                       http://www.FreeBSD.org
[EMAIL PROTECTED]                           http://garage.freebsd.pl
FreeBSD committer                         Am I Evil? Yes, I Am!

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to