Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Jul 2017 15:25:57 +0200
From:      Stefan Ehmann <shoesoft@gmx.net>
To:        Johannes Lundberg <johalun0@gmail.com>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: Getting PID of socket client
Message-ID:  <684e8346-c4a8-a0c5-cb2a-cd5159d2af1c@gmx.net>
In-Reply-To: <CAECmPwuAm%2Bn6DyFR01OgatxN9Jj3um-50jOpP0jeB4=N%2Bj=yxg@mail.gmail.com>
References:  <CAECmPwsD=PYqoG9EA=Wyq16hcrdbf7SQ3Owxdf%2BWSvYWazJfXA@mail.gmail.com> <a42d8db6-675f-b021-fc50-6ef87d310623@gmx.net> <CAECmPwuAm%2Bn6DyFR01OgatxN9Jj3um-50jOpP0jeB4=N%2Bj=yxg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 09.07.2017 11:52, Johannes Lundberg wrote:
> Hi
> 
> Yeah I forgot to mention the LOCAL_CREDS.
> It does not return the PID of the client process but i guess it could be 
> expanded to include that instead of adding another option for that.

I was only skimming the man page. Didn't see that cmsgcred contains the 
PID, but sockcred does not. Of course the PID in my sample output is 
also wrong (the UID is printed instead of the PID):

>     $ ./unixstrserv02
>     PID of sender = 1001

Don't why the structs are not compatible, maybe because:
"The process ID cmcred_pid should not be looked up (such as via the
KERN_PROC_PID sysctl) for making security decisions.  The sending 
process could have exited and its process ID already been reused for a 
new process."

According to the commit log LOCAL_CREDS was obtained from NetBSD but I 
didn't investigate further.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?684e8346-c4a8-a0c5-cb2a-cd5159d2af1c>