[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 19/23: Add missing null checks in libshouldbeinlibc
From: |
Samuel Thibault |
Subject: |
[hurd] 19/23: Add missing null checks in libshouldbeinlibc |
Date: |
Tue, 13 Oct 2015 00:09:56 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch upstream
in repository hurd.
commit bf6d5e67e86a059c1ffbde425d0f3f05fd0a0717
Author: James Clarke <address@hidden>
Date: Tue Sep 29 18:06:46 2015 +0100
Add missing null checks in libshouldbeinlibc
The getpwnam_r and similar functions only return non-zero on error, but not
finding the given name/UID/GID does not count as an error. When they return
0,
the value of the result (*result when looking at the arguments in the man
pages)
still needs to be checked for null.
* libshouldbeinlibc/idvec-rep.c (lookup_uid): Check result for null.
(lookup_gid): Likewise.
* libshouldbeinlibc/idvec-verify.c (verify_passwd): Likewise.
(verify_id): Likewise.
---
libshouldbeinlibc/idvec-rep.c | 4 ++--
libshouldbeinlibc/idvec-verify.c | 7 ++++---
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/libshouldbeinlibc/idvec-rep.c b/libshouldbeinlibc/idvec-rep.c
index 16408a4..4fc7712 100644
--- a/libshouldbeinlibc/idvec-rep.c
+++ b/libshouldbeinlibc/idvec-rep.c
@@ -129,7 +129,7 @@ lookup_uid (uid_t uid)
{
char buf[1024];
struct passwd _pw, *pw;
- if (getpwuid_r (uid, &_pw, buf, sizeof buf, &pw) == 0)
+ if (getpwuid_r (uid, &_pw, buf, sizeof buf, &pw) == 0 && pw)
return strdup (pw->pw_name);
else
return 0;
@@ -141,7 +141,7 @@ lookup_gid (gid_t gid)
{
char buf[1024];
struct group _gr, *gr;
- if (getgrgid_r (gid, &_gr, buf, sizeof buf, &gr) == 0)
+ if (getgrgid_r (gid, &_gr, buf, sizeof buf, &gr) == 0 && gr)
return strdup (gr->gr_name);
else
return 0;
diff --git a/libshouldbeinlibc/idvec-verify.c b/libshouldbeinlibc/idvec-verify.c
index 4d9b6db..4019a04 100644
--- a/libshouldbeinlibc/idvec-verify.c
+++ b/libshouldbeinlibc/idvec-verify.c
@@ -107,7 +107,8 @@ verify_passwd (const char *password,
return pw->pw_passwd;
}
- if (getpwuid_r (wheel_uid, &_pw, lookup_buf, sizeof lookup_buf, &pw))
+ if (getpwuid_r (wheel_uid, &_pw, lookup_buf, sizeof lookup_buf, &pw)
+ || ! pw)
return errno ?: EINVAL;
sys_encrypted = check_shadow (pw);
@@ -266,7 +267,7 @@ verify_id (uid_t id, int is_group, int multiple,
{
struct group _gr, *gr;
if (getgrgid_r (id, &_gr, id_lookup_buf, sizeof id_lookup_buf, &gr)
- == 0)
+ == 0 && gr)
{
if (!gr->gr_passwd || !*gr->gr_passwd)
return (*verify_fn) ("", id, 1, gr, verify_hook);
@@ -278,7 +279,7 @@ verify_id (uid_t id, int is_group, int multiple,
{
struct passwd _pw, *pw;
if (getpwuid_r (id, &_pw, id_lookup_buf, sizeof id_lookup_buf, &pw)
- == 0)
+ == 0 && pw)
{
if (strcmp (pw->pw_passwd, SHADOW_PASSWORD_STRING) == 0)
{
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/hurd.git
- [hurd] branch upstream updated (3f883d3 -> b989189), Samuel Thibault, 2015/10/12
- [hurd] 18/23: Update NEWS file, Samuel Thibault, 2015/10/12
- [hurd] 15/23: libtrivfs: deprecate old api, Samuel Thibault, 2015/10/12
- [hurd] 19/23: Add missing null checks in libshouldbeinlibc,
Samuel Thibault <=
- [hurd] 21/23: Make netfs_S_io_reauthenticate handle allocation errors, Samuel Thibault, 2015/10/12
- [hurd] 20/23: Drop duplicate port deallocation, Samuel Thibault, 2015/10/12
- [hurd] 14/23: libtrivfs: optimize the object lookup code, Samuel Thibault, 2015/10/12
- [hurd] 23/23: Merge remote-tracking branch 'upstream/master' into upstream, Samuel Thibault, 2015/10/12
- [hurd] 10/23: trans/magic: convert to trivfs dynamic classes and buckets, Samuel Thibault, 2015/10/12
- [hurd] 04/23: libdiskfs: fflush stdout when pausing, Samuel Thibault, 2015/10/12
- [hurd] 11/23: trans/new-fifo: convert to trivfs dynamic classes and buckets, Samuel Thibault, 2015/10/12
- [hurd] 07/23: pflocal: convert to trivfs dynamic classes and buckets, Samuel Thibault, 2015/10/12
- [hurd] 09/23: trans/ifsock: convert to trivfs dynamic classes and buckets, Samuel Thibault, 2015/10/12
- [hurd] 12/23: trans/passwd: convert to trivfs dynamic classes and buckets, Samuel Thibault, 2015/10/12