about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--include/netdb.h3
-rw-r--r--inet/rcmd.c51
-rw-r--r--inet/rexec.c13
-rw-r--r--inet/ruserpass.c30
5 files changed, 66 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index e117190421..b85cddfb4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2000-05-29  Ulrich Drepper  <drepper@redhat.com>
+
+	* inet/Makefile (CFLAGS-rcmd.c, CFLAGS-rexec.c, CFLAGS-ruserpass.c):
+	Removed.
+	* inet/rcmd.c: Remove __P.  Remove unused variables.
+	(iruserfopen): Make first parameter const.
+	(ruserok_sa): Return result of ruserok2_sa.
+	(__checkhost_sa): Correctly iterate through results of getaddrinfo.
+	* inet/rexec.c: Remove unused variables.  Other small cleanups.
+	* inet/ruserpass.c: Remove __P.  Remove unused variables.
+	(ruserpass): Check results of memory allocation.
+	* include/netdb.h: Add prototype for ruserpass.
+
 2000-05-29  Jakub Jelinek  <jakub@redhat.com>
 
 	* inet/rcmd.c (rresvport_af): Use correct port number.
diff --git a/include/netdb.h b/include/netdb.h
index f7f570e425..26b8cf5850 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -77,4 +77,7 @@ extern int __getnetgrent_r (char **__restrict __hostp,
 			    char **__restrict __userp,
 			    char **__restrict __domainp,
 			    char *__restrict __buffer, size_t __buflen);
+
+extern int ruserpass (const char *host, const char **aname,
+		      const char **apass);
 #endif /* !_NETDB_H */
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 12081e8963..758f6c953b 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -81,9 +81,9 @@ static char sccsid[] = "@(#)rcmd.c	8.3 (Berkeley) 3/26/94";
 #include <stdlib.h>
 
 
-int __ivaliduser __P ((FILE *, u_int32_t, const char *, const char *));
-static int __validuser2_sa __P ((FILE *, struct sockaddr *, size_t,
-				 const char *, const char *, const char *));
+int __ivaliduser (FILE *, u_int32_t, const char *, const char *);
+static int __validuser2_sa (FILE *, struct sockaddr *, size_t,
+			    const char *, const char *, const char *);
 static int ruserok2_sa (struct sockaddr *ra, size_t ralen,
 			int superuser, const char *ruser,
 			const char *luser, const char *rhost);
@@ -106,8 +106,6 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 	sa_family_t af;
 {
 	char paddr[INET6_ADDRSTRLEN];
-	size_t hstbuflen;
-	char *tmphstbuf;
 	struct addrinfo hints, *res, *ai;
 	struct sockaddr_storage from;
 	struct pollfd pfd[2];
@@ -314,7 +312,7 @@ rresvport_af(alport, family)
 	struct sockaddr_storage ss;
 	int s;
 	size_t len;
-	uint16_t *sport, i;
+	uint16_t *sport;
 
 	switch(family){
 	case AF_INET:
@@ -401,7 +399,7 @@ ruserok(rhost, superuser, ruser, luser)
 
 /* Extremely paranoid file open function. */
 static FILE *
-iruserfopen (char *file, uid_t okuser)
+iruserfopen (const char *file, uid_t okuser)
 {
   struct stat st;
   char *cp = NULL;
@@ -519,7 +517,7 @@ static int ruserok_sa(ra, ralen, superuser, ruser, luser)
      int superuser;
      const char *ruser, *luser;
 {
-  ruserok2_sa(ra, ralen, superuser, ruser, luser, "-");
+  return ruserok2_sa(ra, ralen, superuser, ruser, luser, "-");
 }
 
 /* This is the exported version.  */
@@ -590,19 +588,13 @@ __ivaliduser(hostf, raddr, luser, ruser)
 /* Returns 1 on positive match, 0 on no match, -1 on negative match.  */
 static int
 internal_function
-__checkhost_sa (ra, ralen, lhost, rhost)
-	struct sockaddr *ra;
-	size_t ralen;
-	char *lhost;
-	const char *rhost;
+__checkhost_sa (struct sockaddr *ra, size_t ralen, char *lhost,
+		const char *rhost)
 {
 	struct addrinfo hints, *res0, *res;
-	int herr;
-	int save_errno;
 	char raddr[INET6_ADDRSTRLEN];
 	int match;
 	int negate=1;    /* Multiply return with this to get -1 instead of 1 */
-	char *user;
 
 	/* Check nis netgroup.  */
 	if (strncmp ("+@", lhost, 2) == 0)
@@ -632,29 +624,29 @@ __checkhost_sa (ra, ralen, lhost, rhost)
 	hints.ai_family = ra->sa_family;
 	if (getaddrinfo(lhost, NULL, &hints, &res0) == 0){
 		/* Spin through ip addresses. */
-		for (res=res0; res; res->ai_next){
-			if (res->ai_family == ra->sa_family &&
-			    !memcmp(res->ai_addr, ra, res->ai_addrlen)){
-				match = 1;
-				break;
-			}
-		}
-		freeaddrinfo(res0);
+		for (res = res0; res; res = res->ai_next)
+		  {
+		    if (res->ai_family == ra->sa_family
+			&& !memcmp(res->ai_addr, ra, res->ai_addrlen))
+		      {
+			match = 1;
+			break;
+		      }
+		  }
+		freeaddrinfo (res0);
 	}
-	return (negate * match);
+	return negate * match;
 }
 
 /* Returns 1 on positive match, 0 on no match, -1 on negative match.  */
 static int
 internal_function
-__icheckuser (luser, ruser)
-	const char *luser, *ruser;
+__icheckuser (const char *luser, const char *ruser)
 {
     /*
       luser is user entry from .rhosts/hosts.equiv file
       ruser is user id on remote host
       */
-    char *user;
 
     /* [-+]@netgroup */
     if (strncmp ("+@", luser, 2) == 0)
@@ -679,8 +671,7 @@ __icheckuser (luser, ruser)
  * Returns 1 for blank lines (or only comment lines) and 0 otherwise
  */
 static int
-__isempty(p)
-	char *p;
+__isempty (char *p)
 {
     while (*p && isspace (*p)) {
 	++p;
diff --git a/inet/rexec.c b/inet/rexec.c
index 8a977c6ab9..decee94e6d 100644
--- a/inet/rexec.c
+++ b/inet/rexec.c
@@ -40,6 +40,7 @@ static char sccsid[] = "@(#)rexec.c	8.1 (Berkeley) 6/4/93";
 #include <stdio.h>
 #include <netdb.h>
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -58,11 +59,10 @@ rexec_af(ahost, rport, name, pass, cmd, fd2p, af)
 	struct addrinfo hints, *res0;
 	const char *orig_name = name;
 	const char *orig_pass = pass;
-	u_short port;
+	u_short port = 0;
 	int s, timo = 1, s3;
 	char c;
-	int herr;
-	int gai, ok;
+	int gai;
 	char servbuff[NI_MAXSERV];
 
 	snprintf(servbuff, sizeof(servbuff), "%d", rport);
@@ -72,7 +72,8 @@ rexec_af(ahost, rport, name, pass, cmd, fd2p, af)
 	hints.ai_family = af;
 	hints.ai_socktype = SOCK_STREAM;
 	hints.ai_flags = AI_CANONNAME;
-	if (gai = getaddrinfo(*ahost, servbuff, &hints, &res0)){
+	gai = getaddrinfo(*ahost, servbuff, &hints, &res0);
+	if (gai){
 		/* XXX: set errno? */
 		return -1;
 	}
@@ -148,9 +149,9 @@ retry:
 	/* We don't need the memory allocated for the name and the password
 	   in ruserpass anymore.  */
 	if (name != orig_name)
-	  free (name);
+	  free ((char *) name);
 	if (pass != orig_pass)
-	  free (pass);
+	  free ((char *) pass);
 
 	if (__read(s, &c, 1) != 1) {
 		perror(*ahost);
diff --git a/inet/ruserpass.c b/inet/ruserpass.c
index 70bfdd4c8d..18d8e1462a 100644
--- a/inet/ruserpass.c
+++ b/inet/ruserpass.c
@@ -37,6 +37,7 @@ static char sccsid[] = "@(#)ruserpass.c	8.3 (Berkeley) 4/2/94";
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>
+#include <netdb.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -45,7 +46,7 @@ static char sccsid[] = "@(#)ruserpass.c	8.3 (Berkeley) 4/2/94";
 
 /* #include "ftp_var.h" */
 
-static	int token __P((void));
+static	int token (void);
 static	FILE *cfile;
 
 #define	DEFAULT	1
@@ -93,11 +94,11 @@ static const struct toktab {
 
 int
 ruserpass(host, aname, apass)
-	char *host, **aname, **apass;
+	const char *host, **aname, **apass;
 {
 	char *hdir, *buf, *tmp;
 	char myname[1024], *mydomain;
-	int t, i, c, usedefault = 0;
+	int t, usedefault = 0;
 	struct stat stb;
 
 	hdir = __secure_getenv("HOME");
@@ -157,14 +158,21 @@ next:
 		while ((t = token()) && t != MACHINE && t != DEFAULT) switch(t) {
 
 		case LOGIN:
-			if (token())
+			if (token()) {
 				if (*aname == 0) {
-					*aname = malloc((unsigned) strlen(tokval) + 1);
-					(void) strcpy(*aname, tokval);
+				  char *newp;
+				  newp = malloc((unsigned) strlen(tokval) + 1);
+				  if (newp == NULL)
+				    {
+				      warnx(_("out of memory"));
+				      goto bad;
+				    }
+				  *aname = strcpy(newp, tokval);
 				} else {
 					if (strcmp(*aname, tokval))
 						goto next;
 				}
+			}
 			break;
 		case PASSWD:
 			if (strcmp(*aname, "anonymous") &&
@@ -175,8 +183,14 @@ next:
 				goto bad;
 			}
 			if (token() && *apass == 0) {
-				*apass = malloc((unsigned) strlen(tokval) + 1);
-				(void) strcpy(*apass, tokval);
+				char *newp;
+				newp = malloc((unsigned) strlen(tokval) + 1);
+				if (newp == NULL)
+				  {
+				    warnx(_("out of memory"));
+				    goto bad;
+				  }
+				*apass = strcpy(newp, tokval);
 			}
 			break;
 		case ACCOUNT: