| diff --git a/CHANGELOG b/CHANGELOG |
| index 3a7f47e..d416684 100644 |
| |
| |
| @@ -1,3 +1,7 @@ |
| +??/??/2007 autofs-5.0.2 |
| +----------------------- |
| +- fix return check for getpwuid_r and getgrgid_r. |
| + |
| 20/2/2007 autofs-5.0.1 |
| ---------------------- |
| - fix typo in Fix typo in var when removing temp directory. |
| diff --git a/daemon/direct.c b/daemon/direct.c |
| index 0869858..2dc23db 100644 |
| |
| |
| @@ -1335,7 +1335,7 @@ static void *do_mount_direct(void *arg) |
| } |
| |
| status = getpwuid_r(mt->uid, ppw, pw_tmp, tmplen, pppw); |
| - if (status) { |
| + if (status || !ppw) { |
| error(ap->logopt, "failed to get passwd info from getpwuid_r"); |
| free(tsv); |
| free(pw_tmp); |
| @@ -1382,7 +1382,7 @@ static void *do_mount_direct(void *arg) |
| } |
| |
| status = getgrgid_r(mt->gid, pgr, gr_tmp, tmplen, ppgr); |
| - if (status) { |
| + if (status || !pgr) { |
| error(ap->logopt, "failed to get group info from getgrgid_r"); |
| free(tsv->user); |
| free(tsv->home); |
| diff --git a/daemon/indirect.c b/daemon/indirect.c |
| index 46e3f99..2068c16 100644 |
| |
| |
| @@ -807,7 +807,7 @@ static void *do_mount_indirect(void *arg) |
| } |
| |
| status = getpwuid_r(mt->uid, ppw, pw_tmp, tmplen, pppw); |
| - if (status) { |
| + if (status || !ppw) { |
| error(ap->logopt, "failed to get passwd info from getpwuid_r"); |
| free(tsv); |
| free(pw_tmp); |
| @@ -854,7 +854,7 @@ static void *do_mount_indirect(void *arg) |
| } |
| |
| status = getgrgid_r(mt->gid, pgr, gr_tmp, tmplen, ppgr); |
| - if (status) { |
| + if (status || !pgr) { |
| error(ap->logopt, "failed to get group info from getgrgid_r"); |
| free(tsv->user); |
| free(tsv->home); |