[gnome-shell] Make getting the environment from gnome-session more robust
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Make getting the environment from gnome-session more robust
- Date: Sun, 9 May 2010 20:36:01 +0000 (UTC)
commit c4406d4acee44865ed23c765e5f0e659d97263e7
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Sat Apr 24 09:41:03 2010 -0400
Make getting the environment from gnome-session more robust
readlink() on /proc/<pid>/exe can have results like:
/usr/bin/gnome-keyring-daemon.#prelink#.5DFZsF (deleted)
/usr/bin/gnome-session (deleted)
To find gnome-session in a more robust way, read /proc/<pid>/cmdline
instead.
https://bugzilla.gnome.org/show_bug.cgi?id=616706
src/gnome-shell.in | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/src/gnome-shell.in b/src/gnome-shell.in
index 27f7b0d..0cb6db7 100644
--- a/src/gnome-shell.in
+++ b/src/gnome-shell.in
@@ -37,10 +37,15 @@ def get_running_session_environs():
if not stat.st_uid == myuid:
continue
try:
- exe = os.readlink(piddir + '/exe')
- except OSError, e:
+ f = open(piddir + "/cmdline")
+ command = f.read()
+ f.close()
+ except IOError, e:
continue
- if os.path.basename(exe) != 'gnome-session':
+ # /proc/cmdline is separated and terminated by NULs
+ command = command.split("\x00")[0]
+ command = os.path.basename(command)
+ if command != 'gnome-session':
continue
try:
f = open(os.path.join(piddir, 'environ'))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]