Skip to content

Commit 8693087

Browse files
Use #nnn as default group name if no password entry for user ID which mod_wsgi-express is run as.
1 parent 59fc281 commit 8693087

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

docs/release-notes/version-4.4.18.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,11 @@ Version 4.4.18 of mod_wsgi can be obtained from:
99
For details on the availability of Windows binaries see:
1010

1111
https://github.com/GrahamDumpleton/mod_wsgi/tree/master/win32
12+
13+
Bugs Fixed
14+
----------
15+
16+
1. If ``mod_wsgi-express`` was run under a user ID for which there was no
17+
password entry in the system password file, it would fail when looking up
18+
the group name. If this occurs now use ``#nnn`` as the default group name,
19+
where ``nnn`` is the user ID.

src/server/__init__.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,23 @@ def where():
5151

5252
def default_run_user():
5353
try:
54-
return pwd.getpwuid(os.getuid()).pw_name
54+
uid = os.getuid()
55+
return pwd.getpwuid(uid).pw_name
5556
except KeyError:
56-
return '#%d' % os.getuid()
57+
return '#%d' % uid
5758

5859
def default_run_group():
5960
try:
60-
return grp.getgrgid(pwd.getpwuid(os.getuid()).pw_gid).gr_name
61+
uid = os.getuid()
62+
entry = pwd.getpwuid(uid)
6163
except KeyError:
62-
return '#%d' % pwd.getpwuid(os.getuid()).pw_gid
64+
return '#%d' % uid
65+
66+
try:
67+
gid = entry.pw_gid
68+
return grp.getgrgid(gid).gr_name
69+
except KeyError:
70+
return '#%d' % gid
6371

6472
def find_program(names, default=None, paths=[]):
6573
for name in names:

0 commit comments

Comments
 (0)