about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog16
-rw-r--r--inet/rcmd.c3
-rw-r--r--posix/wordexp.c4
-rw-r--r--sysdeps/posix/cuserid.c5
-rw-r--r--sysdeps/posix/getaddrinfo.c2
-rw-r--r--wcsmbs/wcschr.c2
-rw-r--r--wcsmbs/wcsrchr.c2
7 files changed, 25 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 49c5c4b264..8884c1b918 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+1999-07-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* inet/rcmd.c (__icheckhost): Fix typo in last patch.
+
+1999-07-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* wcsmbs/wcschr.c (wcschr): Fix last patch: Add missing semicolon.
+	* wcsmbs/wcsrchr.c (wcsrchr): Likewise.
+
+1999-07-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* posix/wordexp.c (parse_tilde): Handle failing call to
+	get.*_r functions correctly for non-existing entry.
+	* sysdeps/posix/cuserid.c (cuserid): Likewise.
+	* sysdeps/posix/getaddrinfo.c (gaih_inet_serv): Likewise.
+
 1999-06-30  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/gethostid.c: Handle failing call to
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 30f20d1922..2d2ed8044f 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -472,8 +472,7 @@ __icheckhost (raddr, lhost, rhost)
 	buffer = __alloca (buflen);
 	save_errno = errno;
 	while (__gethostbyname_r (lhost, &hostbuf, buffer, buflen, &hp, &herr)
-	       != 0
-	       || hp = NULL)
+	       != 0)
 		if (herr != NETDB_INTERNAL || errno != ERANGE)
 			return (0);
 		else {
diff --git a/posix/wordexp.c b/posix/wordexp.c
index c43d608aba..b6cf85af32 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -311,7 +311,7 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
 	  buffer = __alloca (buflen);
 	}
 
-      if (result == 0 && pwd.pw_dir != NULL)
+      if (result == 0 && tpwd != NULL && pwd.pw_dir != NULL)
 	{
 	  *word = w_addstr (*word, word_length, max_length, pwd.pw_dir);
 	  if (*word == NULL)
@@ -340,7 +340,7 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
 	  buffer = __alloca (buflen);
 	}
 
-      if (result == 0 && pwd.pw_dir)
+      if (result == 0 && tpwd != NULL && pwd.pw_dir)
 	*word = w_addstr (*word, word_length, max_length, pwd.pw_dir);
       else
 	{
diff --git a/sysdeps/posix/cuserid.c b/sysdeps/posix/cuserid.c
index 68de92ae64..5d9ef83c33 100644
--- a/sysdeps/posix/cuserid.c
+++ b/sysdeps/posix/cuserid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,7 +34,8 @@ cuserid (s)
   struct passwd pwent;
   struct passwd *pwptr;
 
-  if (__getpwuid_r (__geteuid (), &pwent, buf, sizeof (buf), &pwptr))
+  if (__getpwuid_r (__geteuid (), &pwent, buf, sizeof (buf), &pwptr)
+      || pwptr == NULL)
     {
       if (s != NULL)
 	s[0] = '\0';
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index f43aa03d1f..6810963357 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -206,7 +206,7 @@ gaih_inet_serv (const char *servicename, struct gaih_typeproto *tp,
 
       r = __getservbyname_r (servicename, tp->name, &ts, tmpbuf, tmpbuflen,
 			     &s);
-      if (r)
+      if (r || s == NULL)
 	{
 	  if (errno == ERANGE)
 	    tmpbuflen *= 2;
diff --git a/wcsmbs/wcschr.c b/wcsmbs/wcschr.c
index a884c0be4c..01e5b2ac98 100644
--- a/wcsmbs/wcschr.c
+++ b/wcsmbs/wcschr.c
@@ -28,7 +28,7 @@ wcschr (wcs, wc)
   do
     if (*wcs == wc)
       return (wchar_t *) wcs;
-  while (*wcs++ != L'\0')
+  while (*wcs++ != L'\0');
 
   return NULL;
 }
diff --git a/wcsmbs/wcsrchr.c b/wcsmbs/wcsrchr.c
index 59184c558b..e041f7a05d 100644
--- a/wcsmbs/wcsrchr.c
+++ b/wcsmbs/wcsrchr.c
@@ -31,7 +31,7 @@ wcsrchr (wcs, wc)
   do
     if (*wcs == wc)
       retval = wcs;
-  while (*wcs++ != L'\0')
+  while (*wcs++ != L'\0');
 
   return (wchar_t *) retval;
 }