From: [email protected] [mailto:[email protected]] On Behalf Of Dominig ar Foll (Intel OTC) Sent: Wednesday, October 09, 2013 10:06 AM To: [email protected] Subject: Re: [Dev] Tizen 3.0 proposal for fixing OSP/WRT/Core hard-coded UID issue
Le 09/10/2013 17:39, Schaufler, Casey a écrit : SO_PEERCRED is fine. /proc/PID is *not*. Unless you have some way to ensure that the pid represents the right process you can't count on it. Also, it seems questionable that you should launch an application with a particular environment just because another application uses that environment. I must miss something. If 'SO_PREECRED is fine', the pid that we will be read is the correct pid of the caller. Then it seems that your "unless" clause will be validated and /proc/PID should be OK. Not at all. You call recvmsg and the getsocopt to get the SO_PEERCRED. The "other" process exits. Another process gets created with the same pid. You open /proc/PID/something. You get the wrong data. The mechanism is 100% unreliable. For the environment, the need is quite simple to explain. When a request to launch an application is done by a user (by pressing a button, calling a Mime Type, ...) a message is pushed on a socket to get that application started. At the end of the chain the daemon Launchpad, which runs as root, will spawn the application for the user. That application must be launch in the user environment ($HOME, $DISPLAY, D-bus session ID, locale, ...) which is not static any more in multi user. Right. Even if you manage to get the right process opened from /proc/PID, you still can't count on the environment from that program. A programs can change its environment. There is no way you can assume that the programs you're about to invoke should run with the environment the other programs has now. I'm not saying you don't need the correct environment information, I'm saying that this is not a viable way to get it. -- Dominig ar Foll Senior Software Architect Open Source Technology Centre Intel SSG
_______________________________________________ Dev mailing list [email protected] https://lists.tizen.org/listinfo/dev
