View | Details | Raw Unified | Return to bug 247596 | Differences between
and this patch

Collapse All | Expand All

(-)b/net/rdist6/Makefile (-1 / +1 lines)
Lines 3-9 Link Here
3
3
4
PORTNAME=	rdist
4
PORTNAME=	rdist
5
PORTVERSION=	6.1.5
5
PORTVERSION=	6.1.5
6
PORTREVISION=	6
6
PORTREVISION=	7
7
CATEGORIES=	net
7
CATEGORIES=	net
8
MASTER_SITES=	https://fossies.org/linux/misc/old/ \
8
MASTER_SITES=	https://fossies.org/linux/misc/old/ \
9
		http://www.magnicomp.com/download/rdist/
9
		http://www.magnicomp.com/download/rdist/
(-)b/net/rdist6/files/patch-Makefile.local (-40 / +26 lines)
Lines 1-40 Link Here
1
*** Makefile.local.dist	Tue Feb  6 02:50:27 1996
1
--- Makefile.local.orig	1998-11-10 03:36:31 UTC
2
--- Makefile.local	Fri May 17 16:45:19 1996
2
+++ Makefile.local
3
***************
3
@@ -14,7 +14,9 @@
4
*** 8,14 ****
4
 # BIN_DIR variable, you would uncomment the following line
5
  # BIN_DIR variable, you would uncomment the following line
5
 # or add your own line.
6
  # or add your own line.
6
 #
7
  #
7
-#BIN_DIR	= /usr/bin
8
! #BIN_DIR	= /usr/bin
8
+BIN_DIR       =       ${STAGEDIR}$(PREFIX)/bin
9
  
9
+OPT =         $(BUILD_OPT)
10
  #
10
+CLIENT =      $(BUILD_CLIENT)
11
  # Add any local definitions you want pass to the compiler to DEFS_LOCAL
11
 
12
--- 8,16 ----
12
 #
13
  # BIN_DIR variable, you would uncomment the following line
13
 # Add any local definitions you want pass to the compiler to DEFS_LOCAL
14
  # or add your own line.
14
@@ -51,8 +53,8 @@ LIBS_LOCAL	=
15
  #
15
 #
16
! BIN_DIR       =       ${STAGEDIR}$(PREFIX)/bin
16
 # Site specific Man Page configuration.
17
! OPT =         $(BUILD_OPT)
17
 #
18
! CLIENT =      $(BUILD_CLIENT)
18
-#MAN_1_DIR	= /usr/local/man/man1
19
  
19
-#MAN_8_DIR	= /usr/local/man/man8
20
  #
20
-#MAN_OWNER	= bin
21
  # Add any local definitions you want pass to the compiler to DEFS_LOCAL
21
-#MAN_GROUP	= bin
22
***************
22
+MAN_1_DIR	= ${STAGEDIR}$(PREFIX)/man/man1
23
*** 45,52 ****
23
+MAN_8_DIR	= ${STAGEDIR}$(PREFIX)/man/man8
24
  #
24
+MAN_OWNER	= bin
25
  # Site specific Man Page configuration.
25
+MAN_GROUP	= bin
26
  #
26
 #MAN_MODE	= 644
27
! #MAN_1_DIR	= /usr/local/man/man1
28
! #MAN_8_DIR	= /usr/local/man/man8
29
! #MAN_OWNER	= bin
30
! #MAN_GROUP	= bin
31
  #MAN_MODE	= 644
32
--- 47,54 ----
33
  #
34
  # Site specific Man Page configuration.
35
  #
36
! MAN_1_DIR	= ${STAGEDIR}$(PREFIX)/man/man1
37
! MAN_8_DIR	= ${STAGEDIR}$(PREFIX)/man/man8
38
! MAN_OWNER	= bin
39
! MAN_GROUP	= bin
40
  #MAN_MODE	= 644
(-)b/net/rdist6/files/patch-build_os-type (-2 / +2 lines)
Lines 1-4 Link Here
1
--- build/os-type.orig	1998-11-09 22:37:27.000000000 -0500
1
--- build/os-type.orig	1998-11-10 03:37:27 UTC
2
+++ build/os-type
2
+++ build/os-type
3
@@ -83,7 +83,7 @@ fi
3
@@ -83,7 +83,7 @@ fi
4
 if [ -z "${OS}" -a ! -z "${uname}" ]; then
4
 if [ -z "${OS}" -a ! -z "${uname}" ]; then
Lines 9-15 Link Here
9
 		*" dcosx "*)	OS=dcosx;;
9
 		*" dcosx "*)	OS=dcosx;;
10
 		*"cx/ux"*)	OS=cxux;;
10
 		*"cx/ux"*)	OS=cxux;;
11
 		*"hp-ux"*)	# HP-UX 9.x
11
 		*"hp-ux"*)	# HP-UX 9.x
12
@@ -111,7 +111,8 @@ if [ -z "${OS}" -a ! -z "${uname}" ]; th
12
@@ -111,7 +111,8 @@ if [ -z "${OS}" -a ! -z "${uname}" ]; then
13
 				OS="${osname}${osmajver}"
13
 				OS="${osname}${osmajver}"
14
 				;;
14
 				;;
15
 		"linux"*)	OS=linux;;
15
 		"linux"*)	OS=linux;;
(-)a/net/rdist6/files/patch-client.c (-9 lines)
Removed Link Here
1
--- src/client.c	Mon Nov  9 23:08:47 1998
2
+++ src/client.c	Tue Jan 18 15:47:15 2005
3
@@ -762,5 +762,5 @@
4
 	char *owner = NULL, *group = NULL;
5
 	int done, n;
6
-	u_char *cp;
7
+	char *cp;
8
 
9
 	debugmsg(DM_CALL, "update(%s, 0x%x, 0x%x)\n", rname, opts, statp);
(-)b/net/rdist6/files/patch-config_config-data.h (+15 lines)
Added Link Here
1
--- config/config-data.h.orig	1998-11-10 03:59:47 UTC
2
+++ config/config-data.h
3
@@ -58,10 +58,10 @@ typedef 	struct dirent		DIRENTRY;
4
  * Set default write(2) return and amount types.
5
  */
6
 #if	!defined(WRITE_RETURN_T)
7
-#define		WRITE_RETURN_T		int	/* What write() returns */
8
+#define		WRITE_RETURN_T		ssize_t	/* What write() returns */
9
 #endif	/* WRITE_RETURN_T */
10
 #if	!defined(WRITE_AMT_T)
11
-#define		WRITE_AMT_T		int	/* Amount to write */
12
+#define		WRITE_AMT_T		size_t	/* Amount to write */
13
 #endif	/* WRITE_AMT_T */
14
 
15
 #endif	/* __configdata_h__ */
(-)b/net/rdist6/files/patch-config_os-freebsd2.h (-3 / +3 lines)
Lines 1-6 Link Here
1
--- config/os-freebsd2.h	Mon Nov  9 22:59:55 1998
1
--- config/os-freebsd2.h.orig	1998-11-10 03:59:55 UTC
2
+++ config/os-freebsd2.h	Tue Jan 18 15:13:07 2005
2
+++ config/os-freebsd2.h
3
@@ -116,18 +116,23 @@
3
@@ -116,18 +116,23 @@ typedef void POINTER;
4
  */
4
  */
5
 #define HAVE_FCHOWN			/* Have fchown() */
5
 #define HAVE_FCHOWN			/* Have fchown() */
6
 #define HAVE_FCHMOD			/* Have fchmod() */
6
 #define HAVE_FCHMOD			/* Have fchmod() */
(-)b/net/rdist6/files/patch-doc_Makefile.real (-2 / +2 lines)
Lines 1-5 Link Here
1
--- doc/Makefile.real.orig	1998-11-09 21:40:06.000000000 -0800
1
--- doc/Makefile.real.orig	1998-11-10 05:40:06 UTC
2
+++ doc/Makefile.real	2014-05-29 19:32:52.700090356 -0700
2
+++ doc/Makefile.real
3
@@ -10,7 +10,7 @@
3
@@ -10,7 +10,7 @@
4
 
4
 
5
 CLIENT_DEST 	= ${MAN_1_DIR}/${CLIENT}.${MAN_1_SECT}
5
 CLIENT_DEST 	= ${MAN_1_DIR}/${CLIENT}.${MAN_1_SECT}
(-)a/net/rdist6/files/patch-docmd.c (-11 lines)
Removed Link Here
1
--- src/docmd.c.orig	Mon Nov  9 20:08:32 1998
2
+++ src/docmd.c	Tue Oct 23 14:32:06 2001
3
@@ -611,7 +624,7 @@
4
 		c = *cp;
5
 		if (c & 0200)
6
 			isbad = TRUE;
7
-		if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-')
8
+		if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-' && c != '.' )
9
 			isbad = TRUE;
10
 	}
11
 
(-)b/net/rdist6/files/patch-include_defs.h (-5 / +5 lines)
Lines 1-5 Link Here
1
--- include/defs.h	Mon Nov  9 23:23:54 1998
1
--- include/defs.h.orig	1998-11-10 04:23:54 UTC
2
+++ include/defs.h	Tue Jan 18 15:41:40 2005
2
+++ include/defs.h
3
@@ -17,10 +17,9 @@
3
@@ -17,10 +17,9 @@
4
 /*
4
 /*
5
  * POSIX settings
5
  * POSIX settings
Lines 12-18 Link Here
12
 #include <stdio.h>
12
 #include <stdio.h>
13
 #include <ctype.h>
13
 #include <ctype.h>
14
 #include <errno.h>
14
 #include <errno.h>
15
@@ -357,7 +355,6 @@
15
@@ -357,7 +356,6 @@ extern void			cleanup();
16
 extern void			complain();
16
 extern void			complain();
17
 extern void			docmds();
17
 extern void			docmds();
18
 extern void			finish();
18
 extern void			finish();
Lines 20-26 Link Here
20
 extern void			logmsg();
20
 extern void			logmsg();
21
 extern void			lostconn();
21
 extern void			lostconn();
22
 extern void			markassigned();
22
 extern void			markassigned();
23
@@ -366,7 +363,6 @@
23
@@ -366,7 +364,6 @@ extern void			note();
24
 extern void			runcmdspecial();
24
 extern void			runcmdspecial();
25
 extern void			runcommand();
25
 extern void			runcommand();
26
 extern void			server();
26
 extern void			server();
Lines 28-34 Link Here
28
 extern void			sighandler();
28
 extern void			sighandler();
29
 extern void			waitup();
29
 extern void			waitup();
30
 struct namelist		       *expand();
30
 struct namelist		       *expand();
31
@@ -379,7 +375,9 @@
31
@@ -379,7 +376,9 @@ extern void			debugmsg(int, char *, ...);
32
 extern void			error(char *, ...);
32
 extern void			error(char *, ...);
33
 extern void			fatalerr(char *, ...);
33
 extern void			fatalerr(char *, ...);
34
 extern void			message(int, char *, ...);
34
 extern void			message(int, char *, ...);
(-)a/net/rdist6/files/patch-mkstemp (-47 lines)
Removed Link Here
1
These patches replace mktemp with mkstemp in the client code entirely.
2
3
In the server code more intrusive changes would be needed, so the hunk
4
simply ensures, the file is not created between the mktemp() and the
5
open() calls.
6
7
	-mi
8
9
--- src/message.c	Mon Nov  9 23:13:30 1998
10
+++ src/message.c	Tue Jan 18 15:23:32 2005
11
@@ -463,6 +463,6 @@
12
 
13
 	if (!msgfac->mf_fptr) {
14
-		register char *cp;
15
-		char *getenv();
16
+		const char *cp;
17
+		int	fd;
18
 
19
 		/*
20
@@ -476,6 +476,6 @@
21
 
22
 		msgfac->mf_filename = tempfile;
23
-		(void) mktemp(msgfac->mf_filename);
24
-		if ((msgfac->mf_fptr = fopen(msgfac->mf_filename, "w"))==NULL)
25
+		fd = mkstemp(tempfile);
26
+		if (fd == -1 || (msgfac->mf_fptr = fdopen(fd, "w"))==NULL)
27
 			fatalerr("Cannot open notify file for writing: %s: %s.",
28
 			      msgfac->mf_filename, SYSERR);
29
@@ -514,5 +514,5 @@
30
 static void _message(flags, msgbuf)
31
 	int flags;
32
-	char *msgbuf;
33
+	const char *msgbuf;
34
 {
35
 	register int i, x;
36
--- src/server.c	Mon Nov  9 23:15:31 1998
37
+++ src/server.c	Tue Jan 18 16:34:26 2005
38
@@ -768,7 +768,7 @@
39
 	 * Create temporary file
40
 	 */
41
-	if ((f = creat(new, mode)) < 0) {
42
+	if ((f = open(new, O_CREAT|O_TRUNC|O_WRONLY|O_EXCL, mode)) < 0) {
43
 		if (errno != ENOENT || chkparent(new, opts) < 0 ||
44
-		    (f = creat(new, mode)) < 0) {
45
+		    (f = open(new, O_CREAT|O_TRUNC|O_WRONLY|O_EXCL, mode)) < 0) {
46
 			error("%s: create failed: %s", new, SYSERR);
47
 			(void) unlink(new);
(-)a/net/rdist6/files/patch-progname (-45 lines)
Removed Link Here
1
setprogname() is a standard library function. Instead of renaming
2
rdist6' (incompatible) implementation, remove it entirely replacing with
3
much simpler code.
4
5
	-mi
6
7
--- src/rdist.c	Mon Nov  9 23:13:50 1998
8
+++ src/rdist.c	Tue Jan 18 15:36:30 2005
9
@@ -113,5 +113,5 @@
10
 	 * things in msgparseopts() need progname set.
11
 	 */
12
-	setprogname(argv);
13
+	progname = basename(argv[0]);
14
 
15
 	if (cp = msgparseopts(localmsglist, TRUE)) {
16
--- src/common.c	Mon Nov  9 23:09:01 1998
17
+++ src/common.c	Tue Jan 18 15:40:19 2005
18
@@ -109,19 +109,4 @@
19
 
20
 /*
21
- * Set program name
22
- */
23
-extern void setprogname(argv)
24
-	char **argv;
25
-{
26
-	register char *cp;
27
-
28
-	if (!progname) {
29
-		progname = strdup(argv[0]);
30
-		if (cp = strrchr(progname, '/'))
31
-			progname = cp + 1;
32
-	}
33
-}
34
-
35
-/*
36
  * Do run-time initialization
37
  */
38
@@ -138,5 +123,6 @@
39
 		(void) signal(SIGSEGV, sighandler);
40
 
41
-	setprogname(argv);
42
+	if (progname == NULL)
43
+		progname = basename(argv[0]);
44
 
45
 	/*
(-)a/net/rdist6/files/patch-rdist.c (-404 lines)
Removed Link Here
1
--- ./src/rdist.c.ORI	2012-06-12 07:35:16.000000000 +0200
2
+++ ./src/rdist.c	2012-06-12 07:49:18.000000000 +0200
3
@@ -62,8 +62,8 @@
4
 char   	       *distfile = NULL;		/* Name of distfile to use */
5
 int     	maxchildren = MAXCHILDREN;	/* Max no of concurrent PIDs */
6
 int		nflag = 0;			/* Say without doing */
7
-long		min_freespace = 0;		/* Min filesys free space */
8
-long		min_freefiles = 0;		/* Min filesys free # files */
9
+int64_t		min_freespace = 0;		/* Min filesys free space */
10
+int64_t		min_freefiles = 0;		/* Min filesys free # files */
11
 FILE   	       *fin = NULL;			/* Input file pointer */
12
 struct group   *gr = NULL;			/* Static area for getgrent */
13
 char		localmsglist[] = "stdout=all:notify=all:syslog=nerror,ferror";
14
@@ -109,6 +109,7 @@
15
 	register char *cp;
16
 	int cmdargs = 0;
17
 	int c;
18
+	const char *errstr;
19
 
20
 	/*
21
 	 * We initialize progname here instead of init() because
22
@@ -178,10 +179,20 @@
23
 				error("\"%s\" is not a number.", optarg);
24
 				usage();
25
 			}
26
-			if (c == 'a')
27
-				min_freespace = atoi(optarg);
28
-			else if (c == 'A')
29
-				min_freefiles = atoi(optarg);
30
+			if (c == 'a') {
31
+				min_freespace = (int64_t)strtonum(optarg,
32
+					0, LLONG_MAX, &errstr);
33
+				if (errstr)
34
+					fatalerr("Minimum free space is %s: "
35
+						 "'%s'", errstr, optarg);
36
+			}
37
+			else if (c == 'A') {
38
+				min_freefiles = (int64_t)strtonum(optarg,
39
+					0, LLONG_MAX, &errstr);
40
+				if (errstr)
41
+					fatalerr("Minimum free files is %s: "
42
+						 "'%s'", errstr, optarg);
43
+			}
44
 			else if (c == 'M')
45
 				maxchildren = atoi(optarg);
46
 			else if (c == 't')
47
--- ./src/server.c.ORI	2012-06-12 07:35:16.000000000 +0200
48
+++ ./src/server.c	2012-06-12 08:14:41.651950502 +0200
49
@@ -62,8 +62,8 @@
50
 int	catname = 0;		/* cat name to target name */
51
 char	*sptarget[32];		/* stack of saved ptarget's for directories */
52
 char   *fromhost = NULL;	/* Client hostname */
53
-static long min_freespace = 0;	/* Minimium free space on a filesystem */
54
-static long min_freefiles = 0;	/* Minimium free # files on a filesystem */
55
+static int64_t min_freespace = 0; /* Minimium free space on a filesystem */
56
+static int64_t min_freefiles = 0; /* Minimium free # files on a filesystem */
57
 int	oumask;			/* Old umask */
58
 
59
 /*
60
@@ -645,8 +645,8 @@
61
 	case S_IFLNK:
62
 	case S_IFDIR:
63
 	case S_IFREG:
64
-		(void) sendcmd(QC_YES, "%ld %ld %o %s %s",
65
-			       (long) stb.st_size, 
66
+		(void) sendcmd(QC_YES, "%lld %ld %o %s %s",
67
+			       (long long) stb.st_size, 
68
 			       stb.st_mtime, 
69
 			       stb.st_mode & 07777,
70
 			       getusername(stb.st_uid, target, options), 
71
@@ -783,13 +783,13 @@
72
 	wrerr = 0;
73
 	olderrno = 0;
74
 	for (i = 0; i < size; i += BUFSIZ) {
75
-		int amt = BUFSIZ;
76
+		off_t amt = BUFSIZ;
77
 
78
 		cp = buf;
79
 		if (i + amt > size)
80
 			amt = size - i;
81
 		do {
82
-			int j;
83
+			ssize_t j;
84
 
85
 			j = readrem(cp, amt);
86
 			if (j <= 0) {
87
@@ -1306,6 +1306,7 @@
88
 {
89
 	register char *cp = cmd;
90
 	char *estr;
91
+	const char *errstr;
92
 
93
 	switch (*cp++) {
94
 	case SC_HOSTNAME:	/* Set hostname */
95
@@ -1322,19 +1323,15 @@
96
 		break;
97
 
98
 	case SC_FREESPACE: 	/* Minimium free space */
99
-		if (!isdigit(*cp)) {
100
-			fatalerr("Expected digit, got '%s'.", cp);
101
-			return;
102
-		}
103
-		min_freespace = (unsigned long) atoi(cp);
104
+		min_freespace = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
105
+		if (errstr)
106
+			fatalerr("Minimum free space is %s: '%s'", errstr, optarg);
107
 		break;
108
 
109
 	case SC_FREEFILES: 	/* Minimium free files */
110
-		if (!isdigit(*cp)) {
111
-			fatalerr("Expected digit, got '%s'.", cp);
112
-			return;
113
-		}
114
-		min_freefiles = (unsigned long) atoi(cp);
115
+		min_freefiles = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
116
+		if (errstr)
117
+			fatalerr("Minimum free files is %s: '%s'", errstr, optarg);
118
 		break;
119
 
120
 	case SC_LOGGING:	/* Logging options */
121
@@ -1364,7 +1361,7 @@
122
 	time_t mtime, atime;
123
 	char *owner, *group, *file;
124
 	char new[MAXPATHLEN];
125
-	long freespace = -1, freefiles = -1;
126
+	int64_t freespace = -1, freefiles = -1;
127
 	char *cp = cmd;
128
 
129
 	/*
130
@@ -1388,7 +1385,7 @@
131
 	/*
132
 	 * Get file size
133
 	 */
134
-	size = strtol(cp, &cp, 10);
135
+	size = (off_t) strtoll(cp, &cp, 10);
136
 	if (*cp++ != ' ') {
137
 		error("recvit: size not delimited");
138
 		return;
139
@@ -1397,7 +1394,7 @@
140
 	/*
141
 	 * Get modification time
142
 	 */
143
-	mtime = strtol(cp, &cp, 10);
144
+	mtime = (time_t) strtol(cp, &cp, 10);
145
 	if (*cp++ != ' ') {
146
 		error("recvit: mtime not delimited");
147
 		return;
148
@@ -1441,8 +1438,8 @@
149
 	}
150
 
151
 	debugmsg(DM_MISC,
152
-		 "recvit: opts = %04o mode = %04o size = %d mtime = %d",
153
-		 opts, mode, size, mtime);
154
+		 "recvit: opts = %04o mode = %04o size = %lld mtime = %d",
155
+		 opts, mode, (long long) size, mtime);
156
 	debugmsg(DM_MISC,
157
        "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",
158
 		 owner, group, file, catname, (type == S_IFDIR) ? 1 : 0);
159
@@ -1486,7 +1483,7 @@
160
 	 */
161
 	if (min_freespace || min_freefiles) {
162
 		/* Convert file size to kilobytes */
163
-		long fsize = (long) (size / 1024);
164
+		int64_t fsize = (int64_t)size / 1024;
165
 
166
 		if (getfilesysinfo(target, &freespace, &freefiles) != 0)
167
 			return;
168
@@ -1498,15 +1495,15 @@
169
 		if (min_freespace && (freespace >= 0) && 
170
 		    (freespace - fsize < min_freespace)) {
171
 			error(
172
-		     "%s: Not enough free space on filesystem: min %d free %d",
173
-			      target, min_freespace, freespace);
174
+		     "%s: Not enough free space on filesystem: min %lld "
175
+		     "free %lld", target, min_freespace, freespace);
176
 			return;
177
 		}
178
 		if (min_freefiles && (freefiles >= 0) &&
179
 		    (freefiles - 1 < min_freefiles)) {
180
 			error(
181
-		     "%s: Not enough free files on filesystem: min %d free %d",
182
-			      target, min_freefiles, freefiles);
183
+		     "%s: Not enough free files on filesystem: min %lld free "
184
+		     "%lld", target, min_freefiles, freefiles);
185
 			return;
186
 		}
187
 	}
188
--- ./src/docmd.c.ORI	2012-06-12 07:35:16.000000000 +0200
189
+++ ./src/docmd.c	2012-06-12 08:11:29.000000000 +0200
190
@@ -102,7 +102,8 @@
191
 	register struct namelist *to;
192
 	time_t lmod;
193
 {
194
-	register int fd, len;
195
+	register int fd;
196
+	ssize_t len;
197
 	FILE *pf, *popen();
198
 	struct stat stb;
199
 	static char buf[BUFSIZ];
200
@@ -325,7 +326,7 @@
201
 	register char *ruser, *cp;
202
 	static char *cur_host = NULL;
203
 	extern char *locuser;
204
-	extern long min_freefiles, min_freespace;
205
+	extern int64_t min_freefiles, min_freespace;
206
 	extern char *remotemsglist;
207
 	char tuser[BUFSIZ], buf[BUFSIZ];
208
 	u_char respbuff[BUFSIZ];
209
@@ -416,13 +417,13 @@
210
 			return(0);
211
 	}
212
 	if (min_freespace) {
213
-		(void) sendcmd(C_SETCONFIG, "%c%d", SC_FREESPACE, 
214
+		(void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREESPACE, 
215
 			       min_freespace);
216
 		if (response() < 0)
217
 			return(0);
218
 	}
219
 	if (min_freefiles) {
220
-		(void) sendcmd(C_SETCONFIG, "%c%d", SC_FREEFILES, 
221
+		(void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREEFILES, 
222
 			       min_freefiles);
223
 		if (response() < 0)
224
 			return(0);
225
--- ./src/common.c.ORI	2012-06-12 07:35:16.000000000 +0200
226
+++ ./src/common.c	2012-06-12 08:01:34.000000000 +0200
227
@@ -379,14 +379,14 @@
228
  */
229
 static u_char rembuf[BUFSIZ];
230
 static u_char *remptr;
231
-static int remleft;
232
+static ssize_t remleft;
233
 
234
 #define remc() (--remleft < 0 ? remmore() : *remptr++)
235
 
236
 /*
237
  * Back end to remote read()
238
  */
239
-static int remread(fd, buf, bufsiz)
240
+static ssize_t remread(fd, buf, bufsiz)
241
 	int fd;
242
 	u_char *buf;
243
 	int bufsiz;
244
@@ -480,7 +480,7 @@
245
 /*
246
  * Non-line-oriented remote read.
247
  */
248
-readrem(p, space)
249
+ssize_t readrem(p, space)
250
 	char *p;
251
 	register int space;
252
 {
253
@@ -878,7 +878,7 @@
254
 	extern POINTER *malloc();
255
 
256
 	if ((ptr = (char *)malloc(amt)) == NULL)
257
-		fatalerr("Cannot malloc %d bytes of memory.", amt);
258
+		fatalerr("Cannot malloc %zu bytes of memory.", amt);
259
 
260
 	return(ptr);
261
 }
262
@@ -894,7 +894,7 @@
263
 	extern POINTER *realloc();
264
 
265
 	if ((new = (char *)realloc(baseptr, amt)) == NULL)
266
-		fatalerr("Cannot realloc %d bytes of memory.", amt);
267
+		fatalerr("Cannot realloc %zu bytes of memory.", amt);
268
 
269
 	return(new);
270
 }
271
@@ -910,7 +910,7 @@
272
 	extern POINTER *calloc();
273
 
274
 	if ((ptr = (char *)calloc(num, esize)) == NULL)
275
-		fatalerr("Cannot calloc %d * %d = %d bytes of memory.",
276
+		fatalerr("Cannot calloc %zu * %zu = %zu bytes of memory.",
277
 		      num, esize, num * esize);
278
 
279
 	return(ptr);
280
--- ./src/filesys.c.ORI	2012-06-12 07:35:16.000000000 +0200
281
+++ ./src/filesys.c	2012-06-12 08:12:20.000000000 +0200
282
@@ -434,8 +434,8 @@
283
  */
284
 int getfilesysinfo(file, freespace, freefiles)
285
 	char *file;
286
-	long *freespace;
287
-	long *freefiles;
288
+	int64_t *freespace;
289
+	int64_t *freefiles;
290
 {
291
 #if	defined(STATFS_TYPE)
292
 	static statfs_t statfsbuf;
293
--- ./config/config-data.h.ORI	1998-11-10 04:59:47.000000000 +0100
294
+++ ./config/config-data.h	2012-06-12 07:55:48.000000000 +0200
295
@@ -58,10 +58,10 @@
296
  * Set default write(2) return and amount types.
297
  */
298
 #if	!defined(WRITE_RETURN_T)
299
-#define		WRITE_RETURN_T		int	/* What write() returns */
300
+#define		WRITE_RETURN_T		ssize_t	/* What write() returns */
301
 #endif	/* WRITE_RETURN_T */
302
 #if	!defined(WRITE_AMT_T)
303
-#define		WRITE_AMT_T		int	/* Amount to write */
304
+#define		WRITE_AMT_T		size_t	/* Amount to write */
305
 #endif	/* WRITE_AMT_T */
306
 
307
 #endif	/* __configdata_h__ */
308
--- ./src/client.c.ORI	2012-06-12 08:26:35.000000000 +0200
309
+++ ./src/client.c	2012-06-12 08:57:34.000000000 +0200
310
@@ -399,9 +399,9 @@
311
 	/*
312
 	 * Send file info
313
 	 */
314
-	(void) sendcmd(C_RECVREG, "%o %04o %ld %ld %ld %s %s %s", 
315
+	(void) sendcmd(C_RECVREG, "%o %04o %lld %ld %ld %s %s %s", 
316
 		       opts, stb->st_mode & 07777, 
317
-		       (long) stb->st_size, 
318
+		       (long long) stb->st_size, 
319
 		       stb->st_mtime, stb->st_atime,
320
 		       user, group, rname);
321
 	if (response() < 0) {
322
@@ -409,8 +409,8 @@
323
 		return(-1);
324
 	}
325
 
326
-	debugmsg(DM_MISC, "Send file '%s' %d bytes\n", 
327
-		 rname, (long) stb->st_size);
328
+	debugmsg(DM_MISC, "Send file '%s' %ld bytes\n", 
329
+		 rname, (long long) stb->st_size);
330
 
331
 	/*
332
 	 * Set remote time out alarm handler.
333
@@ -661,9 +661,9 @@
334
 	/*
335
 	 * Gather and send basic link info
336
 	 */
337
-	(void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s", 
338
+	(void) sendcmd(C_RECVSYMLINK, "%o %04o %lld %ld %ld %s %s %s", 
339
 		       opts, stb->st_mode & 07777, 
340
-		       (long) stb->st_size, 
341
+		       (long long) stb->st_size, 
342
 		       stb->st_mtime, stb->st_atime,
343
 		       user, group, rname);
344
 	if (response() < 0)
345
@@ -843,7 +843,7 @@
346
 	/*
347
 	 * Parse size
348
 	 */
349
-	size = strtol(cp, &cp, 10);
350
+	size = strtoll(cp, &cp, 10);
351
 	if (*cp++ != ' ') {
352
 		error("update: size not delimited");
353
 		return(US_NOTHING);
354
@@ -895,8 +895,8 @@
355
 
356
 	debugmsg(DM_MISC, "update(%s,) local mode %04o remote mode %04o\n", 
357
 		 rname, lmode, rmode);
358
-	debugmsg(DM_MISC, "update(%s,) size %d mtime %d owner '%s' grp '%s'\n",
359
-		 rname, (int) size, mtime, owner, group);
360
+	debugmsg(DM_MISC, "update(%s,) size %lld mtime %d owner '%s' grp '%s'\n",
361
+		 rname, (long long) size, mtime, owner, group);
362
 
363
 	if (statp->st_mtime != mtime) {
364
 		if (statp->st_mtime < mtime && IS_ON(opts, DO_YOUNGER)) {
365
@@ -922,8 +922,8 @@
366
 	}
367
 
368
 	if (statp->st_size != size) {
369
-		debugmsg(DM_MISC, "size does not match (%d != %d).\n",
370
-			 (int) statp->st_size, size);
371
+		debugmsg(DM_MISC, "size does not match (%lld != %lld).\n",
372
+			 (long long) statp->st_size, (long long)size);
373
 		return(US_OUTDATE);
374
 	} 
375
 
376
--- ./src/child.c.ORI	1998-11-10 05:18:57.000000000 +0100
377
+++ ./src/child.c	2012-06-12 08:58:16.000000000 +0200
378
@@ -189,7 +189,7 @@
379
 	CHILD *child;
380
 {
381
 	char rbuf[BUFSIZ];
382
-	int amt;
383
+	ssize_t amt;
384
 
385
 	debugmsg(DM_CALL, "[readchild(%s, %d, %d) start]", 
386
 		 child->c_name, child->c_pid, child->c_readfd);
387
@@ -208,7 +208,7 @@
388
 	 */
389
 	while ((amt = read(child->c_readfd, rbuf, sizeof(rbuf))) > 0) {
390
 		/* XXX remove these debug calls */
391
-		debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %d bytes]", 
392
+		debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %lld bytes]", 
393
 			 child->c_name, child->c_pid, child->c_readfd, amt);
394
 
395
 		(void) xwrite(fileno(stdout), rbuf, amt);
396
@@ -217,7 +217,7 @@
397
 			 child->c_name, child->c_pid, child->c_readfd);
398
 	}
399
 
400
-	debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %d errno = %d\n",
401
+	debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %lld errno = %d\n",
402
 		 child->c_name, child->c_pid, child->c_readfd, amt, errno);
403
 
404
 	/*
(-)b/net/rdist6/files/patch-src_Makefile.real (-3 / +3 lines)
Lines 1-5 Link Here
1
--- src/Makefile.real.orig	1998-11-09 20:03:46.000000000 -0800
1
--- src/Makefile.real.orig	1998-11-10 04:03:46 UTC
2
+++ src/Makefile.real	2014-05-29 19:25:12.420724836 -0700
2
+++ src/Makefile.real
3
@@ -8,7 +8,7 @@
3
@@ -8,7 +8,7 @@
4
 # $Id: Makefile.real,v 1.12 1998/11/10 04:03:46 mcooper Exp $
4
 # $Id: Makefile.real,v 1.12 1998/11/10 04:03:46 mcooper Exp $
5
 #
5
 #
Lines 9-15 Link Here
9
 
9
 
10
 HFILES		= ../config/config.h ../config/config-data.h \
10
 HFILES		= ../config/config.h ../config/config-data.h \
11
 			../config/config-def.h ../config/os-$(OS).h \
11
 			../config/config-def.h ../config/os-$(OS).h \
12
@@ -52,9 +52,9 @@
12
@@ -52,9 +52,9 @@ clean:
13
 		$(COMMONOBJS) $(MISSINGOBJS)
13
 		$(COMMONOBJS) $(MISSINGOBJS)
14
 
14
 
15
 install:
15
 install:
(-)b/net/rdist6/files/patch-src_child.c (+29 lines)
Added Link Here
1
--- src/child.c.orig	1998-11-10 04:18:57 UTC
2
+++ src/child.c
3
@@ -189,7 +189,7 @@ static void readchild(child)
4
 	CHILD *child;
5
 {
6
 	char rbuf[BUFSIZ];
7
-	int amt;
8
+	ssize_t amt;
9
 
10
 	debugmsg(DM_CALL, "[readchild(%s, %d, %d) start]", 
11
 		 child->c_name, child->c_pid, child->c_readfd);
12
@@ -208,7 +208,7 @@ static void readchild(child)
13
 	 */
14
 	while ((amt = read(child->c_readfd, rbuf, sizeof(rbuf))) > 0) {
15
 		/* XXX remove these debug calls */
16
-		debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %d bytes]", 
17
+		debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %lld bytes]", 
18
 			 child->c_name, child->c_pid, child->c_readfd, amt);
19
 
20
 		(void) xwrite(fileno(stdout), rbuf, amt);
21
@@ -217,7 +217,7 @@ static void readchild(child)
22
 			 child->c_name, child->c_pid, child->c_readfd);
23
 	}
24
 
25
-	debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %d errno = %d\n",
26
+	debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %lld errno = %d\n",
27
 		 child->c_name, child->c_pid, child->c_readfd, amt, errno);
28
 
29
 	/* 
(-)b/net/rdist6/files/patch-src_client.c (+98 lines)
Added Link Here
1
--- src/client.c.orig	1998-11-10 04:08:47 UTC
2
+++ src/client.c
3
@@ -356,16 +356,16 @@ static int sendhardlink(opts, lp, rname, destdir)
4
 		 rname, lp->pathname, lp->src, lp->target);
5
 		 
6
 	if (*lp->target == CNULL)
7
-		(void) sendcmd(C_RECVHARDLINK, "%o %s %s", 
8
-			       opts, lp->pathname, rname);
9
+		(void) sendcmd(C_RECVHARDLINK, "%o %d %s %s", 
10
+			       opts, strlen(lp->pathname), lp->pathname, rname);
11
 	else {
12
 		lname = buff;
13
 		strcpy(lname, remfilename(lp->src, lp->target, 
14
 					  lp->pathname, rname, 
15
 					  destdir));
16
 		debugmsg(DM_MISC, "sendhardlink: lname=%s\n", lname);
17
-		(void) sendcmd(C_RECVHARDLINK, "%o %s %s", 
18
-			       opts, lname, rname);
19
+		(void) sendcmd(C_RECVHARDLINK, "%o %d %s %s", 
20
+			       opts, strlen(lname), lname, rname);
21
 	}
22
 
23
 	return(response());
24
@@ -399,9 +399,9 @@ static int sendfile(rname, opts, stb, user, group, des
25
 	/*
26
 	 * Send file info
27
 	 */
28
-	(void) sendcmd(C_RECVREG, "%o %04o %ld %ld %ld %s %s %s", 
29
+	(void) sendcmd(C_RECVREG, "%o %04o %lld %ld %ld %s %s %s", 
30
 		       opts, stb->st_mode & 07777, 
31
-		       (long) stb->st_size, 
32
+		       (long long) stb->st_size, 
33
 		       stb->st_mtime, stb->st_atime,
34
 		       user, group, rname);
35
 	if (response() < 0) {
36
@@ -409,8 +409,8 @@ static int sendfile(rname, opts, stb, user, group, des
37
 		return(-1);
38
 	}
39
 
40
-	debugmsg(DM_MISC, "Send file '%s' %d bytes\n", 
41
-		 rname, (long) stb->st_size);
42
+	debugmsg(DM_MISC, "Send file '%s' %ld bytes\n", 
43
+		 rname, (long long) stb->st_size);
44
 
45
 	/*
46
 	 * Set remote time out alarm handler.
47
@@ -661,9 +661,9 @@ static int sendlink(rname, opts, stb, user, group, des
48
 	/*
49
 	 * Gather and send basic link info
50
 	 */
51
-	(void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s", 
52
+	(void) sendcmd(C_RECVSYMLINK, "%o %04o %lld %ld %ld %s %s %s", 
53
 		       opts, stb->st_mode & 07777, 
54
-		       (long) stb->st_size, 
55
+		       (long long) stb->st_size, 
56
 		       stb->st_mtime, stb->st_atime,
57
 		       user, group, rname);
58
 	if (response() < 0)
59
@@ -761,7 +761,7 @@ static int update(rname, opts, statp)
60
 	unsigned short rmode;
61
 	char *owner = NULL, *group = NULL;
62
 	int done, n;
63
-	u_char *cp;
64
+	char *cp;
65
 
66
 	debugmsg(DM_CALL, "update(%s, 0x%x, 0x%x)\n", rname, opts, statp);
67
 
68
@@ -843,7 +843,7 @@ static int update(rname, opts, statp)
69
 	/*
70
 	 * Parse size
71
 	 */
72
-	size = strtol(cp, &cp, 10);
73
+	size = strtoll(cp, &cp, 10);
74
 	if (*cp++ != ' ') {
75
 		error("update: size not delimited");
76
 		return(US_NOTHING);
77
@@ -895,8 +895,8 @@ static int update(rname, opts, statp)
78
 
79
 	debugmsg(DM_MISC, "update(%s,) local mode %04o remote mode %04o\n", 
80
 		 rname, lmode, rmode);
81
-	debugmsg(DM_MISC, "update(%s,) size %d mtime %d owner '%s' grp '%s'\n",
82
-		 rname, (int) size, mtime, owner, group);
83
+	debugmsg(DM_MISC, "update(%s,) size %lld mtime %d owner '%s' grp '%s'\n",
84
+		 rname, (long long) size, mtime, owner, group);
85
 
86
 	if (statp->st_mtime != mtime) {
87
 		if (statp->st_mtime < mtime && IS_ON(opts, DO_YOUNGER)) {
88
@@ -922,8 +922,8 @@ static int update(rname, opts, statp)
89
 	}
90
 
91
 	if (statp->st_size != size) {
92
-		debugmsg(DM_MISC, "size does not match (%d != %d).\n",
93
-			 (int) statp->st_size, size);
94
+		debugmsg(DM_MISC, "size does not match (%lld != %lld).\n",
95
+			 (long long) statp->st_size, (long long)size);
96
 		return(US_OUTDATE);
97
 	} 
98
 
(-)b/net/rdist6/files/patch-src_common.c (+87 lines)
Added Link Here
1
--- src/common.c.orig	1998-11-10 04:09:01 UTC
2
+++ src/common.c
3
@@ -108,21 +108,6 @@ extern WRITE_RETURN_T xwrite(fd, buf, len)
4
 }
5
 
6
 /*
7
- * Set program name
8
- */
9
-extern void setprogname(argv)
10
-	char **argv;
11
-{
12
-	register char *cp;
13
-
14
-	if (!progname) {
15
-		progname = strdup(argv[0]);
16
-		if (cp = strrchr(progname, '/'))
17
-			progname = cp + 1;
18
-	}
19
-}
20
-
21
-/*
22
  * Do run-time initialization
23
  */
24
 extern int init(argc, argv, envp)
25
@@ -137,7 +122,8 @@ extern int init(argc, argv, envp)
26
 	if (!isserver)
27
 		(void) signal(SIGSEGV, sighandler);
28
 
29
-	setprogname(argv);
30
+	if (progname == NULL)
31
+		progname = basename(argv[0]);
32
 
33
 	/*
34
 	 * Save a copy of our argc and argv before setargs() overwrites them
35
@@ -393,14 +379,14 @@ extern int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a
36
  */
37
 static u_char rembuf[BUFSIZ];
38
 static u_char *remptr;
39
-static int remleft;
40
+static ssize_t remleft;
41
 
42
 #define remc() (--remleft < 0 ? remmore() : *remptr++)
43
 
44
 /*
45
  * Back end to remote read()
46
  */
47
-static int remread(fd, buf, bufsiz)
48
+static ssize_t remread(fd, buf, bufsiz)
49
 	int fd;
50
 	u_char *buf;
51
 	int bufsiz;
52
@@ -494,7 +480,7 @@ extern int remline(buffer, space, doclean)
53
 /*
54
  * Non-line-oriented remote read.
55
  */
56
-readrem(p, space)
57
+ssize_t readrem(p, space)
58
 	char *p;
59
 	register int space;
60
 {
61
@@ -892,7 +878,7 @@ char *xmalloc(amt)
62
 	extern POINTER *malloc();
63
 
64
 	if ((ptr = (char *)malloc(amt)) == NULL)
65
-		fatalerr("Cannot malloc %d bytes of memory.", amt);
66
+		fatalerr("Cannot malloc %zu bytes of memory.", amt);
67
 
68
 	return(ptr);
69
 }
70
@@ -908,7 +894,7 @@ char *xrealloc(baseptr, amt)
71
 	extern POINTER *realloc();
72
 
73
 	if ((new = (char *)realloc(baseptr, amt)) == NULL)
74
-		fatalerr("Cannot realloc %d bytes of memory.", amt);
75
+		fatalerr("Cannot realloc %zu bytes of memory.", amt);
76
 
77
 	return(new);
78
 }
79
@@ -924,7 +910,7 @@ char *xcalloc(num, esize)
80
 	extern POINTER *calloc();
81
 
82
 	if ((ptr = (char *)calloc(num, esize)) == NULL)
83
-		fatalerr("Cannot calloc %d * %d = %d bytes of memory.",
84
+		fatalerr("Cannot calloc %zu * %zu = %zu bytes of memory.",
85
 		      num, esize, num * esize);
86
 
87
 	return(ptr);
(-)b/net/rdist6/files/patch-src_docmd.c (-54 / +87 lines)
Lines 1-54 Link Here
1
*** src/docmd.c	1995/07/21 09:53:30	1.1.1.1
1
--- src/docmd.c.orig	1998-11-10 04:08:32 UTC
2
--- src/docmd.c	1995/07/21 10:07:14	1.2
2
+++ src/docmd.c
3
***************
3
@@ -102,7 +102,8 @@ static void notify(rhost, to, lmod)
4
*** 251,259 ****
4
 	register struct namelist *to;
5
  	char *cmd;
5
 	time_t lmod;
6
  {
6
 {
7
  	int desc;
7
-	register int fd, len;
8
- #if	defined(DIRECT_RCMD)
8
+	register int fd;
9
  	static int port = -1;
9
+	ssize_t len;
10
- #endif	/* DIRECT_RCMD */
10
 	FILE *pf, *popen();
11
  
11
 	struct stat stb;
12
  	debugmsg(DM_MISC, "local user = %s remote user = %s\n", luser, ruser);
12
 	static char buf[BUFSIZ];
13
  	debugmsg(DM_MISC, "Remote command = '%s'\n", cmd);
13
@@ -261,9 +262,7 @@ static int remotecmd(rhost, luser, ruser, cmd)
14
--- 251,257 ----
14
 	char *cmd;
15
***************
15
 {
16
*** 280,290 ****
16
 	int desc;
17
  	if (becomeuser() != 0)
17
-#if	defined(DIRECT_RCMD)
18
  		exit(1);
18
 	static int port = -1;
19
  #else	/* !DIRECT_RCMD */
19
-#endif	/* DIRECT_RCMD */
20
! 	debugmsg(DM_MISC, "Remote shell command = '%s'\n", path_remsh);
20
 
21
! 	(void) signal(SIGPIPE, SIG_IGN);
21
 	debugmsg(DM_MISC, "local user = %s remote user = %s\n", luser, ruser);
22
! 	desc = rshrcmd(&rhost, -1, luser, ruser, cmd, 0);
22
 	debugmsg(DM_MISC, "Remote command = '%s'\n", cmd);
23
! 	if (desc > 0)
23
@@ -290,11 +289,26 @@ static int remotecmd(rhost, luser, ruser, cmd)
24
  		(void) signal(SIGPIPE, sighandler);
24
 	if (becomeuser() != 0)
25
  #endif	/* DIRECT_RCMD */
25
 		exit(1);
26
  
26
 #else	/* !DIRECT_RCMD */
27
  	(void) alarm(0);
27
-	debugmsg(DM_MISC, "Remote shell command = '%s'\n", path_remsh);
28
--- 278,303 ----
28
-	(void) signal(SIGPIPE, SIG_IGN);
29
  	if (becomeuser() != 0)
29
-	desc = rshrcmd(&rhost, -1, luser, ruser, cmd, 0);
30
  		exit(1);
30
-	if (desc > 0)
31
  #else	/* !DIRECT_RCMD */
31
+	if (geteuid() == 0 && strcmp(path_remsh, "/usr/bin/rsh") == 0) {
32
! 	if (geteuid() == 0 && strcmp(path_remsh, "/usr/bin/rsh") == 0) {
32
+		debugmsg(DM_MISC, "I am root, using rsh, therefore direct rcmd\n");
33
! 		debugmsg(DM_MISC, "I am root, using rsh, therefore direct rcmd\n");
33
 		(void) signal(SIGPIPE, sighandler);
34
  		(void) signal(SIGPIPE, sighandler);
34
+
35
+ 
35
+		if (port < 0) {
36
+ 		if (port < 0) {
36
+			struct servent *sp;
37
+ 			struct servent *sp;
37
+		
38
+ 		
38
+			if ((sp = getservbyname("shell", "tcp")) == NULL)
39
+ 			if ((sp = getservbyname("shell", "tcp")) == NULL)
39
+				fatalerr("shell/tcp: unknown service");
40
+ 				fatalerr("shell/tcp: unknown service");
40
+			port = sp->s_port;
41
+ 			port = sp->s_port;
41
+		}
42
+ 		}
42
+
43
+ 
43
+		desc = rcmd(&rhost, port, luser, ruser, cmd, 0);
44
+ 		desc = rcmd(&rhost, port, luser, ruser, cmd, 0);
44
+	} else {
45
+ 	} else {
45
+		debugmsg(DM_MISC, "Remote shell command = '%s'\n", path_remsh);
46
+ 		debugmsg(DM_MISC, "Remote shell command = '%s'\n", path_remsh);
46
+		(void) signal(SIGPIPE, SIG_IGN);
47
+ 		(void) signal(SIGPIPE, SIG_IGN);
47
+		desc = rshrcmd(&rhost, -1, luser, ruser, cmd, 0);
48
+ 		desc = rshrcmd(&rhost, -1, luser, ruser, cmd, 0);
48
+		if (desc > 0)
49
+ 		if (desc > 0)
49
+			(void) signal(SIGPIPE, sighandler);
50
+ 			(void) signal(SIGPIPE, sighandler);
50
+	}
51
+ 	}
51
 #endif	/* DIRECT_RCMD */
52
  #endif	/* DIRECT_RCMD */
52
 
53
  
53
 	(void) alarm(0);
54
  	(void) alarm(0);
54
@@ -312,7 +326,7 @@ static int makeconn(rhost)
55
 	register char *ruser, *cp;
56
 	static char *cur_host = NULL;
57
 	extern char *locuser;
58
-	extern long min_freefiles, min_freespace;
59
+	extern int64_t min_freefiles, min_freespace;
60
 	extern char *remotemsglist;
61
 	char tuser[BUFSIZ], buf[BUFSIZ];
62
 	u_char respbuff[BUFSIZ];
63
@@ -403,13 +417,13 @@ static int makeconn(rhost)
64
 			return(0);
65
 	}
66
 	if (min_freespace) {
67
-		(void) sendcmd(C_SETCONFIG, "%c%d", SC_FREESPACE, 
68
+		(void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREESPACE, 
69
 			       min_freespace);
70
 		if (response() < 0)
71
 			return(0);
72
 	}
73
 	if (min_freefiles) {
74
-		(void) sendcmd(C_SETCONFIG, "%c%d", SC_FREEFILES, 
75
+		(void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREEFILES, 
76
 			       min_freefiles);
77
 		if (response() < 0)
78
 			return(0);
79
@@ -611,7 +625,7 @@ okname(name)
80
 		c = *cp;
81
 		if (c & 0200)
82
 			isbad = TRUE;
83
-		if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-')
84
+		if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-' && c != '.' )
85
 			isbad = TRUE;
86
 	}
87
 
(-)b/net/rdist6/files/patch-src_filesys-os.c (-4 / +8 lines)
Lines 1-12 Link Here
1
--- src/filesys-os.c.dist	Fri Feb 16 03:01:04 1996
1
--- src/filesys-os.c.orig	1998-11-10 04:09:59 UTC
2
+++ src/filesys-os.c	Wed Feb  3 23:38:46 1999
2
+++ src/filesys-os.c
3
@@ -180,4 +180,5 @@
3
@@ -187,6 +187,7 @@ mntent_t *getmountent(fptr)
4
 	if (mnt->f_flags & M_RDONLY)
4
 		mntstruct.me_flags |= MEFLAG_READONLY;
5
 		mntstruct.me_flags |= MEFLAG_READONLY;
5
 #endif
6
 #endif
6
+#ifdef MOUNT_NFS
7
+#ifdef MOUNT_NFS
7
 	switch ((ulong)((struct statfs*)mnt)->f_type) {
8
 	switch ((ulong)((struct statfs*)mnt)->f_type) {
8
 	      case MOUNT_NFS:
9
 	      case MOUNT_NFS:
9
@@ -191,4 +192,14 @@
10
 		(void) sprintf(remote_dev, "%s", mnt->f_mntfromname);
11
@@ -198,6 +199,16 @@ mntent_t *getmountent(fptr)
12
 		mntstruct.me_type = METYPE_OTHER;
10
 		break;
13
 		break;
11
 	}
14
 	}
12
+#else
15
+#else
Lines 21-23 Link Here
21
+#endif
24
+#endif
22
 
25
 
23
 	mnt++;
26
 	mnt++;
27
 	entries_left--;
(-)b/net/rdist6/files/patch-src_filesys.c (+13 lines)
Added Link Here
1
--- src/filesys.c.orig	1998-11-10 04:10:18 UTC
2
+++ src/filesys.c
3
@@ -430,8 +430,8 @@ int is_symlinked(path, statbuf, isvalid)
4
  */
5
 int getfilesysinfo(file, freespace, freefiles)
6
 	char *file;
7
-	long *freespace;
8
-	long *freefiles;
9
+	int64_t *freespace;
10
+	int64_t *freefiles;
11
 {
12
 #if	defined(STATFS_TYPE)
13
 	static statfs_t statfsbuf;
(-)b/net/rdist6/files/patch-src_gram.y (-11 lines)
Lines 1-14 Link Here
1
This patch replaces the character-buffer (which needed to be static,
2
BTW) with a dynamically (re)allocated one.
3
4
This reduces the memory requirements in most cases, while still
5
allowing LARGE lines to be properly processed.
6
7
While here, make the error-reporting a tad more useful to people
8
debugging their distfiles.
9
10
	-mi
11
12
--- src/gram.y.orig	1998-11-10 04:10:42 UTC
1
--- src/gram.y.orig	1998-11-10 04:10:42 UTC
13
+++ src/gram.y
2
+++ src/gram.y
14
@@ -61,6 +61,13 @@ static char copyright[] =
3
@@ -61,6 +61,13 @@ static char copyright[] =
(-)b/net/rdist6/files/patch-src_message.c (+33 lines)
Added Link Here
1
--- src/message.c.orig	1998-11-10 04:13:30 UTC
2
+++ src/message.c
3
@@ -462,8 +462,8 @@ static void msgsendnotify(msgfac, mtype, flags, msgbuf
4
 		return;
5
 
6
 	if (!msgfac->mf_fptr) {
7
-		register char *cp;
8
-		char *getenv();
9
+		const char *cp;
10
+		int	fd;
11
 
12
 		/*
13
 		 * Create and open a new temporary file
14
@@ -475,8 +475,8 @@ static void msgsendnotify(msgfac, mtype, flags, msgbuf
15
 		(void) sprintf(tempfile, "%s/%s", cp, _RDIST_TMP);
16
 
17
 		msgfac->mf_filename = tempfile;
18
-		(void) mktemp(msgfac->mf_filename);
19
-		if ((msgfac->mf_fptr = fopen(msgfac->mf_filename, "w"))==NULL)
20
+		fd = mkstemp(tempfile);
21
+		if (fd == -1 || (msgfac->mf_fptr = fdopen(fd, "w"))==NULL)
22
 			fatalerr("Cannot open notify file for writing: %s: %s.",
23
 			      msgfac->mf_filename, SYSERR);
24
 		debugmsg(DM_MISC, "Created notify temp file '%s'",
25
@@ -513,7 +513,7 @@ extern void checkhostname()
26
  */
27
 static void _message(flags, msgbuf)
28
 	int flags;
29
-	char *msgbuf;
30
+	const char *msgbuf;
31
 {
32
 	register int i, x;
33
 	register char *cp;
(-)b/net/rdist6/files/patch-src_rdist.c (+53 lines)
Added Link Here
1
--- src/rdist.c.orig	1998-11-10 04:13:50 UTC
2
+++ src/rdist.c
3
@@ -62,8 +62,8 @@ static char copyright[] =
4
 char   	       *distfile = NULL;		/* Name of distfile to use */
5
 int     	maxchildren = MAXCHILDREN;	/* Max no of concurrent PIDs */
6
 int		nflag = 0;			/* Say without doing */
7
-long		min_freespace = 0;		/* Min filesys free space */
8
-long		min_freefiles = 0;		/* Min filesys free # files */
9
+int64_t		min_freespace = 0;		/* Min filesys free space */
10
+int64_t		min_freefiles = 0;		/* Min filesys free # files */
11
 FILE   	       *fin = NULL;			/* Input file pointer */
12
 struct group   *gr = NULL;			/* Static area for getgrent */
13
 char		localmsglist[] = "stdout=all:notify=all:syslog=nerror,ferror";
14
@@ -107,12 +107,13 @@ main(argc, argv, envp)
15
 	register char *cp;
16
 	int cmdargs = 0;
17
 	int c;
18
+	const char *errstr;
19
 
20
 	/*
21
 	 * We initialize progname here instead of init() because
22
 	 * things in msgparseopts() need progname set.
23
 	 */
24
-	setprogname(argv);
25
+	progname = basename(argv[0]);
26
 
27
 	if (cp = msgparseopts(localmsglist, TRUE)) {
28
 		error("Bad builtin log option (%s): %s.", 
29
@@ -176,10 +177,20 @@ main(argc, argv, envp)
30
 				error("\"%s\" is not a number.", optarg);
31
 				usage();
32
 			}
33
-			if (c == 'a')
34
-				min_freespace = atoi(optarg);
35
-			else if (c == 'A')
36
-				min_freefiles = atoi(optarg);
37
+			if (c == 'a') {
38
+				min_freespace = (int64_t)strtonum(optarg,
39
+					0, LLONG_MAX, &errstr);
40
+				if (errstr)
41
+					fatalerr("Minimum free space is %s: "
42
+						 "'%s'", errstr, optarg);
43
+			}
44
+			else if (c == 'A') {
45
+				min_freefiles = (int64_t)strtonum(optarg,
46
+					0, LLONG_MAX, &errstr);
47
+				if (errstr)
48
+					fatalerr("Minimum free files is %s: "
49
+						 "'%s'", errstr, optarg);
50
+			}
51
 			else if (c == 'M')
52
 				maxchildren = atoi(optarg);
53
 			else if (c == 't')
(-)b/net/rdist6/files/patch-src_rshrcmd.c (-5 / +9 lines)
Lines 1-12 Link Here
1
--- src/rshrcmd.c	Mon Nov  9 23:15:07 1998
1
--- src/rshrcmd.c.orig	1998-11-10 04:15:07 UTC
2
+++ src/rshrcmd.c	Tue Jan 18 14:53:29 2005
2
+++ src/rshrcmd.c
3
@@ -42,5 +42,4 @@
3
@@ -41,19 +41,11 @@ rshrcmd(ahost, port, luser, ruser, cmd, fd2p)
4
 	int	*fd2p;
4
 {
5
 {
5
 	int             cpid;
6
 	int             cpid;
6
-	struct hostent  *hp;
7
-	struct hostent  *hp;
7
 	int             sp[2];
8
 	int             sp[2];
8
 
9
 
9
@@ -48,11 +47,4 @@
10
 	/* insure that we are indeed being used as we thought. */
10
 	if (fd2p != 0)
11
 	if (fd2p != 0)
11
 		return -1;
12
 		return -1;
12
-	/* validate remote hostname. */
13
-	/* validate remote hostname. */
Lines 18-27 Link Here
18
-	/* *ahost = hp->h_name;*/ /* This makes me nervous. */
19
-	/* *ahost = hp->h_name;*/ /* This makes me nervous. */
19
 
20
 
20
 	/* get a socketpair we'll use for stdin and stdout. */
21
 	/* get a socketpair we'll use for stdin and stdout. */
21
@@ -72,5 +64,5 @@
22
 	if (getsocketpair(AF_UNIX, SOCK_STREAM, 0, sp) < 0) {
23
@@ -71,7 +63,7 @@ rshrcmd(ahost, port, luser, ruser, cmd, fd2p)
24
 		/* child. we use sp[1] to be stdin/stdout, and close
22
 		   sp[0]. */
25
 		   sp[0]. */
23
 		(void) close(sp[0]);
26
 		(void) close(sp[0]);
24
-		if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0 || dup2(0, 2) < 0) {
27
-		if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0 || dup2(0, 2) < 0) {
25
+		if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0) {
28
+		if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0) {
26
 			error("dup2 failed: %s.", SYSERR);
29
 			error("dup2 failed: %s.", SYSERR);
27
 			_exit(255);
30
 			_exit(255);
31
 		}
(-)b/net/rdist6/files/patch-src_server.c (+199 lines)
Added Link Here
1
--- src/server.c.orig	1998-11-10 04:15:31 UTC
2
+++ src/server.c
3
@@ -62,8 +62,8 @@ char	*ptarget;		/* pointer to end of target name */
4
 int	catname = 0;		/* cat name to target name */
5
 char	*sptarget[32];		/* stack of saved ptarget's for directories */
6
 char   *fromhost = NULL;	/* Client hostname */
7
-static long min_freespace = 0;	/* Minimium free space on a filesystem */
8
-static long min_freefiles = 0;	/* Minimium free # files on a filesystem */
9
+static int64_t min_freespace = 0; /* Minimium free space on a filesystem */
10
+static int64_t min_freefiles = 0; /* Minimium free # files on a filesystem */
11
 int	oumask;			/* Old umask */
12
 
13
 /*
14
@@ -645,8 +645,8 @@ static void query(name)
15
 	case S_IFLNK:
16
 	case S_IFDIR:
17
 	case S_IFREG:
18
-		(void) sendcmd(QC_YES, "%ld %ld %o %s %s",
19
-			       (long) stb.st_size, 
20
+		(void) sendcmd(QC_YES, "%lld %ld %o %s %s",
21
+			       (long long) stb.st_size, 
22
 			       stb.st_mtime, 
23
 			       stb.st_mode & 07777,
24
 			       getusername(stb.st_uid, target, options), 
25
@@ -767,9 +767,9 @@ static void recvfile(new, opts, mode, owner, group, mt
26
 	/*
27
 	 * Create temporary file
28
 	 */
29
-	if ((f = creat(new, mode)) < 0) {
30
+	if ((f = open(new, O_CREAT|O_TRUNC|O_WRONLY|O_EXCL, mode)) < 0) {
31
 		if (errno != ENOENT || chkparent(new, opts) < 0 ||
32
-		    (f = creat(new, mode)) < 0) {
33
+		    (f = open(new, O_CREAT|O_TRUNC|O_WRONLY|O_EXCL, mode)) < 0) {
34
 			error("%s: create failed: %s", new, SYSERR);
35
 			(void) unlink(new);
36
 			return;
37
@@ -783,13 +783,13 @@ static void recvfile(new, opts, mode, owner, group, mt
38
 	wrerr = 0;
39
 	olderrno = 0;
40
 	for (i = 0; i < size; i += BUFSIZ) {
41
-		int amt = BUFSIZ;
42
+		off_t amt = BUFSIZ;
43
 
44
 		cp = buf;
45
 		if (i + amt > size)
46
 			amt = size - i;
47
 		do {
48
-			int j;
49
+			ssize_t j;
50
 
51
 			j = readrem(cp, amt);
52
 			if (j <= 0) {
53
@@ -1245,18 +1245,35 @@ static void hardlink(cmd)
54
 		return;
55
 	}
56
 
57
-	oldname = strtok(cp, " ");
58
-	if (oldname == NULL) {
59
-		error("hardlink: oldname name not delimited");
60
-		return;
61
-	}
62
+{ unsigned int len;
63
 
64
-	newname = strtok((char *)NULL, " ");
65
-	if (newname == NULL) {
66
-		error("hardlink: new name not specified");
67
-		return;
68
-	}
69
+  if( *( cp += strspn( cp, " " ) ) == '\0' ) {
70
+    error("hardlink: oldnamelen name not found");
71
+    return;
72
+  }
73
 
74
+  len = strtoul( cp, &cp, 10 );
75
+
76
+  if( *( cp += strspn( cp, " " ) ) == '\0' ) {
77
+    error("hardlink: oldname not found");
78
+    return;
79
+  }
80
+  oldname = cp;
81
+  if( strlen( cp ) < len + 2 ) {
82
+    error("hardlink: oldname too short or nothing following found");
83
+    return;
84
+  }
85
+  cp += len;
86
+  *cp++ = '\0';
87
+
88
+  if( *( cp += strspn( cp, " " ) ) == '\0' ) {
89
+    error("hardlink: newname not found");
90
+    return;
91
+  }
92
+
93
+  newname = cp;
94
+}
95
+
96
 	if (exptilde(expbuf, oldname) == NULL) {
97
 		error("hardlink: tilde expansion failed");
98
 		return;
99
@@ -1306,6 +1323,7 @@ static void setconfig(cmd)
100
 {
101
 	register char *cp = cmd;
102
 	char *estr;
103
+	const char *errstr;
104
 
105
 	switch (*cp++) {
106
 	case SC_HOSTNAME:	/* Set hostname */
107
@@ -1322,19 +1340,15 @@ static void setconfig(cmd)
108
 		break;
109
 
110
 	case SC_FREESPACE: 	/* Minimium free space */
111
-		if (!isdigit(*cp)) {
112
-			fatalerr("Expected digit, got '%s'.", cp);
113
-			return;
114
-		}
115
-		min_freespace = (unsigned long) atoi(cp);
116
+		min_freespace = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
117
+		if (errstr)
118
+			fatalerr("Minimum free space is %s: '%s'", errstr, optarg);
119
 		break;
120
 
121
 	case SC_FREEFILES: 	/* Minimium free files */
122
-		if (!isdigit(*cp)) {
123
-			fatalerr("Expected digit, got '%s'.", cp);
124
-			return;
125
-		}
126
-		min_freefiles = (unsigned long) atoi(cp);
127
+		min_freefiles = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
128
+		if (errstr)
129
+			fatalerr("Minimum free files is %s: '%s'", errstr, optarg);
130
 		break;
131
 
132
 	case SC_LOGGING:	/* Logging options */
133
@@ -1364,7 +1378,7 @@ static void recvit(cmd, type)
134
 	time_t mtime, atime;
135
 	char *owner, *group, *file;
136
 	char new[MAXPATHLEN];
137
-	long freespace = -1, freefiles = -1;
138
+	int64_t freespace = -1, freefiles = -1;
139
 	char *cp = cmd;
140
 
141
 	/*
142
@@ -1388,7 +1402,7 @@ static void recvit(cmd, type)
143
 	/*
144
 	 * Get file size
145
 	 */
146
-	size = strtol(cp, &cp, 10);
147
+	size = (off_t) strtoll(cp, &cp, 10);
148
 	if (*cp++ != ' ') {
149
 		error("recvit: size not delimited");
150
 		return;
151
@@ -1397,7 +1411,7 @@ static void recvit(cmd, type)
152
 	/*
153
 	 * Get modification time
154
 	 */
155
-	mtime = strtol(cp, &cp, 10);
156
+	mtime = (time_t) strtol(cp, &cp, 10);
157
 	if (*cp++ != ' ') {
158
 		error("recvit: mtime not delimited");
159
 		return;
160
@@ -1441,8 +1455,8 @@ static void recvit(cmd, type)
161
 	}
162
 
163
 	debugmsg(DM_MISC,
164
-		 "recvit: opts = %04o mode = %04o size = %d mtime = %d",
165
-		 opts, mode, size, mtime);
166
+		 "recvit: opts = %04o mode = %04o size = %lld mtime = %d",
167
+		 opts, mode, (long long) size, mtime);
168
 	debugmsg(DM_MISC,
169
        "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",
170
 		 owner, group, file, catname, (type == S_IFDIR) ? 1 : 0);
171
@@ -1486,7 +1500,7 @@ static void recvit(cmd, type)
172
 	 */
173
 	if (min_freespace || min_freefiles) {
174
 		/* Convert file size to kilobytes */
175
-		long fsize = (long) (size / 1024);
176
+		int64_t fsize = (int64_t)size / 1024;
177
 
178
 		if (getfilesysinfo(target, &freespace, &freefiles) != 0)
179
 			return;
180
@@ -1498,15 +1512,15 @@ static void recvit(cmd, type)
181
 		if (min_freespace && (freespace >= 0) && 
182
 		    (freespace - fsize < min_freespace)) {
183
 			error(
184
-		     "%s: Not enough free space on filesystem: min %d free %d",
185
-			      target, min_freespace, freespace);
186
+		     "%s: Not enough free space on filesystem: min %lld "
187
+		     "free %lld", target, min_freespace, freespace);
188
 			return;
189
 		}
190
 		if (min_freefiles && (freefiles >= 0) &&
191
 		    (freefiles - 1 < min_freefiles)) {
192
 			error(
193
-		     "%s: Not enough free files on filesystem: min %d free %d",
194
-			      target, min_freefiles, freefiles);
195
+		     "%s: Not enough free files on filesystem: min %lld free "
196
+		     "%lld", target, min_freefiles, freefiles);
197
 			return;
198
 		}
199
 	}
(-)b/net/rdist6/files/patch-src_setargs.c (-4 / +4 lines)
Lines 1-6 Link Here
1
--- src/setargs.c.orig	Mon Nov  9 20:15:56 1998
1
--- src/setargs.c.orig	1998-11-10 04:15:56 UTC
2
+++ src/setargs.c	Fri Nov  3 02:41:25 2000
2
+++ src/setargs.c
3
@@ -89,6 +89,8 @@
3
@@ -89,6 +89,8 @@ setargs_settup(argc, argv, envp)
4
 		LastArgv = argv[argc-1] + strlen(argv[argc-1]);
4
 		LastArgv = argv[argc-1] + strlen(argv[argc-1]);
5
 }
5
 }
6
 
6
 
Lines 9-15 Link Here
9
 /*
9
 /*
10
  * Set process title
10
  * Set process title
11
  */
11
  */
12
@@ -165,5 +167,7 @@
12
@@ -165,5 +167,7 @@ extern void setproctitle(fmt, a1, a2, a3, a4, a5, a6)
13
 	_setproctitle(buf);
13
 	_setproctitle(buf);
14
 }
14
 }
15
 #endif	/* !ARG_TYPE */
15
 #endif	/* !ARG_TYPE */

Return to bug 247596