diff options
author | Ezra Peisach <epeisach@mit.edu> | 2001-07-06 00:18:48 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2001-07-06 00:18:48 +0000 |
commit | d63bccc70e56809eee2a7ac0ddbc0f4616ee4282 (patch) | |
tree | 06fe94352b25977faae21461b9c742e625190055 /src/appl/bsd/v4rcp.c | |
parent | 092c5749b8a7776bde573133976a21fc0f5c1e48 (diff) | |
download | krb5-d63bccc70e56809eee2a7ac0ddbc0f4616ee4282.tar.gz krb5-d63bccc70e56809eee2a7ac0ddbc0f4616ee4282.tar.xz krb5-d63bccc70e56809eee2a7ac0ddbc0f4616ee4282.zip |
* Makefile.in: Link krshd with KRSHDLIBS instead of LOGINLIBS
* configure.in: Creare a new variable KRSHDLIBS which differs from
LOGINLIBS by not including libkrb524.a. Test for getenv.
* krcp.c: Prototype lostconn().
* krlogind.c: Provide prototype for signal handler cleanup. Implied
need to add extra argument to function - ensure consistant
calling.
* krsh.c: Provide prototype for signal handler sendsig.
* krshd.c: Rewrite error() to use stdargs/varargs.
(doit): When creating a tty name using getpid. Ensure that does
not overflow tty string buffer.
* login.c: Provide prototype for signal handler timedout.
* setenv.c: Do not define getenv() unless needed.
* v4rcp.c: Rewrite error() to use stdargs/varargs. Add signal
number argument to lostconn(), include prototype, and ensure
called consistantly.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13567 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/bsd/v4rcp.c')
-rw-r--r-- | src/appl/bsd/v4rcp.c | 57 |
1 files changed, 41 insertions, 16 deletions
diff --git a/src/appl/bsd/v4rcp.c b/src/appl/bsd/v4rcp.c index 65701b5f0..d27c16c0c 100644 --- a/src/appl/bsd/v4rcp.c +++ b/src/appl/bsd/v4rcp.c @@ -73,6 +73,12 @@ static char sccsid[] = "@(#)rcp.c 5.10 (Berkeley) 9/20/88"; #include <netdb.h> #endif #include <errno.h> +#ifdef HAVE_STDARG_H +#include <stdarg.h> +#else +#include <varargs.h> +#endif + #ifdef KERBEROS #include <krb.h> #include <krbports.h> @@ -81,7 +87,11 @@ static char sccsid[] = "@(#)rcp.c 5.10 (Berkeley) 9/20/88"; void sink(int, char **), source(int, char **), rsource(char *, struct stat *), usage(void); /*VARARGS*/ -void error(); +void error (char *fmt, ...) +#if !defined (__cplusplus) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) + __attribute__ ((__format__ (__printf__, 1, 2))) +#endif + ; int response(void); #if !defined(HAVE_UTIMES) int utimes(); @@ -321,7 +331,7 @@ int encryptflag = 0; kstream krem; int errs; -krb5_sigtype lostconn(); +krb5_sigtype lostconn(int); int iamremote, targetshouldbedirectory; int iamrecursive; int pflag; @@ -621,7 +631,7 @@ int response() char resp, c, rbuf[BUFSIZ], *cp = rbuf; if (kstream_read (krem, &resp, 1) != 1) - lostconn(); + lostconn(0); switch (resp) { case 0: /* ok */ @@ -634,7 +644,7 @@ int response() case 2: /* fatal error, "" */ do { if (kstream_read (krem, &c, 1) != 1) - lostconn(); + lostconn(0); *cp++ = c; } while (cp < &rbuf[BUFSIZ] && c != '\n'); if (iamremote == 0) @@ -648,7 +658,8 @@ int response() return -1; } -krb5_sigtype lostconn() +krb5_sigtype lostconn(signum) + int signum; { if (iamremote == 0) @@ -921,20 +932,34 @@ allocbuf(bp, fd, blksize) return (bp); } +void +#ifdef HAVE_STDARG_H +error(char *fmt, ...) +#else /*VARARGS1*/ -void error(fmt, a1, a2, a3, a4, a5) - char *fmt; - int a1, a2, a3, a4, a5; +error(fmt, va_alist) + char *fmt; + va_dcl +#endif { - char buf[BUFSIZ], *cp = buf; + va_list ap; + char buf[BUFSIZ], *cp = buf; + +#ifdef HAVE_STDARG_H + va_start(ap, fmt); +#else + va_start(ap); +#endif - errs++; - *cp++ = 1; - (void) sprintf(cp, fmt, a1, a2, a3, a4, a5); - if (krem) - (void) kstream_write(krem, buf, strlen(buf)); - if (iamremote == 0) - (void) write(2, buf+1, strlen(buf+1)); + errs++; + *cp++ = 1; + (void) vsprintf(cp, fmt, ap); + va_end(ap); + + if (krem) + (void) kstream_write(krem, buf, strlen(buf)); + if (iamremote == 0) + (void) write(2, buf+1, strlen(buf+1)); } void usage() |