summaryrefslogtreecommitdiff
path: root/libguile/posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/posix.c')
-rw-r--r--libguile/posix.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/libguile/posix.c b/libguile/posix.c
index 9a45ed91d..1379ef752 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
@@ -259,6 +259,11 @@ scm_getpwuid (user)
{
SCM_DEFER_INTS;
SCM_SYSCALL (entry = getpwent ());
+ if (! entry)
+ {
+ SCM_ALLOW_INTS;
+ return SCM_BOOL_F;
+ }
}
else if (SCM_INUMP (user))
{
@@ -324,7 +329,14 @@ scm_getgrgid (name)
ve = SCM_VELTS (result);
SCM_DEFER_INTS;
if (SCM_UNBNDP (name) || (name == SCM_BOOL_F))
- SCM_SYSCALL (entry = getgrent ());
+ {
+ SCM_SYSCALL (entry = getgrent ());
+ if (! entry)
+ {
+ SCM_ALLOW_INTS;
+ return SCM_BOOL_F;
+ }
+ }
else if (SCM_INUMP (name))
SCM_SYSCALL (entry = getgrgid (SCM_INUM (name)));
else