Christos Zoulas wrote:
> + if (so == NULL)
> + return -1;
> + if (so->so_cred == NULL) {
> + DPFPRINTF(PF_DEBUG_URGENT,
> + ("%s: so->so_cred == NULL so=%p\n", __func__, so));
> + return -1;
> + }
> pd->lookup.uid = kauth_cred_geteuid(so->so_cred);
> pd->lookup.gid = kauth_cred_getegid(so->so_cred);
> #else
I think it's perfectly normal for an incoming packet to have no
cred. For instance, if that packet is about to be accepted.
pd->lookup.uid and pd->lookup.gid are set to UID_MAX and GID_MAX
at the beginning of the function. They can be probably changed only
if so_cred is set:
if (so == NULL)
return
-1;
if (so->so_cred != NULL) {
pd->lookup.uid = kauth_cred_geteuid(so->so_cred);
pd->lookup.gid = kauth_cred_getegid(so->so_cred);
}
--
Alex