summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1997-11-07 03:25:40 +0000
committerTheodore Tso <tytso@mit.edu>1997-11-07 03:25:40 +0000
commitcee56f85cc1f5189fe0de7e00c5c9ca7124cfa18 (patch)
tree26b1ac153b4ee5ee107b7068a7cc4b4e06b7bbb5 /src
parent4e83c2369a9f674cfacd0a1f6ba4d35d276b7b81 (diff)
downloadkrb5-cee56f85cc1f5189fe0de7e00c5c9ca7124cfa18.tar.gz
krb5-cee56f85cc1f5189fe0de7e00c5c9ca7124cfa18.tar.xz
krb5-cee56f85cc1f5189fe0de7e00c5c9ca7124cfa18.zip
Use error_message(errno) instead of using sys_errlist[errno]. This
avoids the hair of deciding whether or not we need to declare sys_errlist or use strerror(), etc., since com_err has all of that complexity anyway. Also fixed lots of -Wall nits. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10268 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/appl/bsd/ChangeLog8
-rw-r--r--src/appl/bsd/v4rcp.c107
2 files changed, 60 insertions, 55 deletions
diff --git a/src/appl/bsd/ChangeLog b/src/appl/bsd/ChangeLog
index e0ff846b2..af90149bd 100644
--- a/src/appl/bsd/ChangeLog
+++ b/src/appl/bsd/ChangeLog
@@ -1,3 +1,11 @@
+Thu Nov 6 22:04:26 1997 Theodore Y. Ts'o <tytso@mit.edu>
+
+ * v4rcp.c: Use error_message(errno) instead of using
+ sys_errlist[errno]. This avoids the hair of deciding
+ whether or not we need to declare sys_errlist or use
+ strerror(), etc., since com_err has all of that complexity
+ anyway. Also fixed lots of -Wall nits.
+
Mon Nov 3 15:25:48 1997 Tom Yu <tlyu@mit.edu>
* krlogind.c (doit): Fix up potential buffer overrun.
diff --git a/src/appl/bsd/v4rcp.c b/src/appl/bsd/v4rcp.c
index 56db95c8d..4ed931584 100644
--- a/src/appl/bsd/v4rcp.c
+++ b/src/appl/bsd/v4rcp.c
@@ -37,8 +37,15 @@ static char sccsid[] = "@(#)rcp.c 5.10 (Berkeley) 9/20/88";
*/
#ifdef KERBEROS
#include "krb5.h"
+#include "com_err.h"
#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
#include <sys/types.h>
#include <sys/param.h>
#include <sys/file.h>
@@ -55,9 +62,6 @@ static char sccsid[] = "@(#)rcp.c 5.10 (Berkeley) 9/20/88";
#include <stdio.h>
#include <string.h>
#include <signal.h>
-#ifdef POSIX
-#include <stdlib.h>
-#endif
#include <pwd.h>
#include <ctype.h>
#include <netdb.h>
@@ -65,6 +69,17 @@ static char sccsid[] = "@(#)rcp.c 5.10 (Berkeley) 9/20/88";
#ifdef KERBEROS
#include <krb.h>
#include <krbports.h>
+
+
+void sink(), source(), rsource(), usage();
+/*VARARGS*/
+void error();
+int response();
+#if !defined(HAS_UTIMES)
+int utimes();
+#endif
+
+
#if 0
#include <kstream.h>
#else
@@ -304,16 +319,7 @@ int encryptflag = 0;
kstream krem;
int errs;
-#ifdef POSIX
-void lostconn();
-#else
-int lostconn();
-#endif
-int errno;
-/* Kludge!!!! */
-#if (!defined(__NetBSD__) && !defined(__FreeBSD__))
-extern char *sys_errlist[];
-#endif
+krb5_sigtype lostconn();
int iamremote, targetshouldbedirectory;
int iamrecursive;
int pflag;
@@ -331,27 +337,18 @@ struct buffer {
#define NULLBUF (struct buffer *) 0
-/*VARARGS*/
-int error();
-
#define ga() (void) kstream_write (krem, "", 1)
-main(argc, argv)
+int main(argc, argv)
int argc;
char **argv;
{
- char *targ, *host, *src;
- char *suser, *tuser, *thost;
- int i;
- char buf[BUFSIZ], cmd[50 + REALM_SZ];
char portarg[20], rcpportarg[20];
#ifdef ATHENA
static char curhost[256];
#endif /* ATHENA */
#ifdef KERBEROS
char realmarg[REALM_SZ + 5];
- long authopts;
- char **orig_argv = save_argv(argc, argv);
#endif /* KERBEROS */
portarg[0] = '\0';
@@ -451,9 +448,10 @@ main(argc, argv)
#endif /* KERBEROS */
}
usage();
+ return 1;
}
-verifydir(cp)
+void verifydir(cp)
char *cp;
{
struct stat stb;
@@ -463,11 +461,11 @@ verifydir(cp)
return;
errno = ENOTDIR;
}
- error("rcp: %s: %s.\n", cp, sys_errlist[errno]);
+ error("rcp: %s: %s.\n", cp, error_message(errno));
exit(1);
}
-source(argc, argv)
+void source(argc, argv)
int argc;
char **argv;
{
@@ -482,7 +480,7 @@ source(argc, argv)
for (x = 0; x < argc; x++) {
name = argv[x];
if ((f = open(name, 0)) < 0) {
- error("rcp: %s: %s\n", name, sys_errlist[errno]);
+ error("rcp: %s: %s\n", name, error_message(errno));
continue;
}
if (fstat(f, &stb) < 0)
@@ -524,7 +522,7 @@ notreg:
}
}
(void) sprintf(buf, "C%04o %ld %s\n",
- stb.st_mode&07777, stb.st_size, last);
+ (unsigned int) stb.st_mode&07777, stb.st_size, last);
kstream_write (krem, buf, strlen (buf));
if (response() < 0) {
(void) close(f);
@@ -547,7 +545,7 @@ notreg:
if (readerr == 0)
ga();
else
- error("rcp: %s: %s\n", name, sys_errlist[readerr]);
+ error("rcp: %s: %s\n", name, error_message(readerr));
(void) response();
}
}
@@ -558,7 +556,7 @@ notreg:
#include <dirent.h>
#endif
-rsource(name, statp)
+void rsource(name, statp)
char *name;
struct stat *statp;
{
@@ -573,7 +571,7 @@ rsource(name, statp)
#endif
if (d == 0) {
- error("rcp: %s: %s\n", name, sys_errlist[errno]);
+ error("rcp: %s: %s\n", name, error_message(errno));
return;
}
last = strrchr(name, '/');
@@ -590,13 +588,14 @@ rsource(name, statp)
return;
}
}
- (void) sprintf(buf, "D%04o %d %s\n", statp->st_mode&07777, 0, last);
+ (void) sprintf(buf, "D%04o %d %s\n",
+ (unsigned int) statp->st_mode&07777, 0, last);
kstream_write (krem, buf, strlen (buf));
if (response() < 0) {
closedir(d);
return;
}
- while (dp = readdir(d)) {
+ while ((dp = readdir(d))) {
if (dp->d_ino == 0)
continue;
if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
@@ -614,7 +613,7 @@ rsource(name, statp)
(void) response();
}
-response()
+int response()
{
char resp, c, rbuf[BUFSIZ], *cp = rbuf;
@@ -643,14 +642,10 @@ response()
exit(1);
}
/*NOTREACHED*/
+ return -1;
}
-#ifdef POSIX
-void
-#else
-int
-#endif
-lostconn()
+krb5_sigtype lostconn()
{
if (iamremote == 0)
@@ -680,7 +675,7 @@ struct timeval *tvp;
}
#endif
-sink(argc, argv)
+void sink(argc, argv)
int argc;
char **argv;
{
@@ -739,7 +734,7 @@ sink(argc, argv)
return;
}
-#define getnum(t) (t) = 0; while (isdigit(*cp)) (t) = (t) * 10 + (*cp++ - '0');
+#define getnum(t) (t) = 0; while (isdigit((int) *cp)) (t) = (t) * 10 + (*cp++ - '0');
if (*cp == 'T') {
setimes++;
cp++;
@@ -782,7 +777,7 @@ sink(argc, argv)
if (*cp++ != ' ')
SCREWUP("mode not delimited");
size = 0;
- while (isdigit(*cp))
+ while (isdigit((int) *cp))
size = size * 10 + (*cp++ - '0');
if (*cp++ != ' ')
SCREWUP("size not delimited");
@@ -808,13 +803,13 @@ sink(argc, argv)
setimes = 0;
if (utimes(nambuf, tv) < 0)
error("rcp: can't set times on %s: %s\n",
- nambuf, sys_errlist[errno]);
+ nambuf, error_message(errno));
}
continue;
}
if ((of = open(nambuf, O_WRONLY|O_CREAT|O_TRUNC, mode)) < 0) {
bad:
- error("rcp: %s: %s\n", nambuf, sys_errlist[errno]);
+ error("rcp: %s: %s\n", nambuf, error_message(errno));
continue;
}
#ifdef NO_FCHMOD
@@ -844,7 +839,7 @@ sink(argc, argv)
error("rcp: dropped connection");
else
error("rcp: %s\n",
- sys_errlist[errno]);
+ error_message(errno));
exit(1);
}
amt -= j;
@@ -864,7 +859,7 @@ sink(argc, argv)
#ifndef __SCO__
if (ftruncate(of, size))
error("rcp: can't truncate %s: %s\n",
- nambuf, sys_errlist[errno]);
+ nambuf, error_message(errno));
#endif
(void) close(of);
(void) response();
@@ -872,10 +867,10 @@ sink(argc, argv)
setimes = 0;
if (utimes(nambuf, tv) < 0)
error("rcp: can't set times on %s: %s\n",
- nambuf, sys_errlist[errno]);
+ nambuf, error_message(errno));
}
if (wrerr)
- error("rcp: %s: %s\n", nambuf, sys_errlist[errno]);
+ error("rcp: %s: %s\n", nambuf, error_message(errno));
else
ga();
}
@@ -894,7 +889,7 @@ allocbuf(bp, fd, blksize)
struct stat stb;
if (fstat(fd, &stb) < 0) {
- error("rcp: fstat: %s\n", sys_errlist[errno]);
+ error("rcp: fstat: %s\n", error_message(errno));
return (NULLBUF);
}
size = roundup(stb.st_blksize, blksize);
@@ -915,7 +910,7 @@ allocbuf(bp, fd, blksize)
}
/*VARARGS1*/
-error(fmt, a1, a2, a3, a4, a5)
+void error(fmt, a1, a2, a3, a4, a5)
char *fmt;
int a1, a2, a3, a4, a5;
{
@@ -930,7 +925,7 @@ error(fmt, a1, a2, a3, a4, a5)
(void) write(2, buf+1, strlen(buf+1));
}
-usage()
+void usage()
{
fprintf(stderr,
"v4rcp: this program only acts as a server, and is not for user function.\n");
@@ -978,7 +973,7 @@ char *sp;
void
answer_auth()
{
- int sin_len, status;
+ int status;
long authopts = KOPT_DO_MUTUAL;
char instance[INST_SZ];
char version[9];
@@ -986,6 +981,8 @@ answer_auth()
char *envaddr;
#if 0
+ int sin_len;
+
sin_len = sizeof (struct sockaddr_in);
if (getpeername(rem, &foreign, &sin_len) < 0) {
perror("getpeername");
@@ -998,7 +995,7 @@ answer_auth()
exit(1);
}
#else
- if (envaddr = getenv("KRB5LOCALADDR")) {
+ if ((envaddr = getenv("KRB5LOCALADDR"))) {
#ifdef HAVE_INET_ATON
inet_aton(envaddr, &local.sin_addr);
#else
@@ -1010,7 +1007,7 @@ answer_auth()
fprintf(stderr, "v4rcp: couldn't get local address (KRB5LOCALADDR)\n");
exit(1);
}
- if (envaddr = getenv("KRB5REMOTEADDR")) {
+ if ((envaddr = getenv("KRB5REMOTEADDR"))) {
#ifdef HAVE_INET_ATON
inet_aton(envaddr, &foreign.sin_addr);
#else