aboutsummaryrefslogtreecommitdiffhomepage
path: root/System
diff options
context:
space:
mode:
authorGravatar Simon Marlow <marlowsd@gmail.com>2013-01-30 09:20:23 +0000
committerGravatar Simon Marlow <marlowsd@gmail.com>2013-01-30 09:20:23 +0000
commit625b9f86ff3ef8b9e0f7b58982268e5351b2eda2 (patch)
tree5a4758294425587394865f3df9cdcbf0121870f0 /System
parent1461d21ea3096e252fdd5698772dbfd1ad033d6a (diff)
cope with missing pw_gecos (for Android)
Submitted by: Nathan Hüsken <nathan.huesken@posteo.de>
Diffstat (limited to 'System')
-rw-r--r--System/Posix/User.hsc4
1 files changed, 4 insertions, 0 deletions
diff --git a/System/Posix/User.hsc b/System/Posix/User.hsc
index a62648d..de08314 100644
--- a/System/Posix/User.hsc
+++ b/System/Posix/User.hsc
@@ -453,7 +453,11 @@ unpackUserEntry ptr = do
passwd <- (#peek struct passwd, pw_passwd) ptr >>= peekCAString
uid <- (#peek struct passwd, pw_uid) ptr
gid <- (#peek struct passwd, pw_gid) ptr
+#ifdef HAVE_NO_PASSWD_PW_GECOS
+ gecos <- return "" -- pw_gecos does not exist on android
+#else
gecos <- (#peek struct passwd, pw_gecos) ptr >>= peekCAString
+#endif
dir <- (#peek struct passwd, pw_dir) ptr >>= peekCAString
shell <- (#peek struct passwd, pw_shell) ptr >>= peekCAString
return (UserEntry name passwd uid gid gecos dir shell)