On 4/9/2011 1:04 PM, Theo de Raadt wrote:
> When you print and off_t, for portability you should use:
>
> "%lld", (long long)offt
>
>
>
With pleasure,
Steven
Only in /usr/src/usr.bin/rdistd: CVS
diff -uw /usr/src/usr.bin/rdistd/Makefile rdistd/Makefile
--- /usr/src/usr.bin/rdistd/Makefile Tue May 6 18:10:11 2003
+++ rdistd/Makefile Mon Mar 28 22:03:04 2011
@@ -4,5 +4,6 @@
SRCS= common.c filesys-os.c filesys.c message.c rdistd.c server.c
.PATH: ${.CURDIR}/../rdist
CFLAGS+=-I${.CURDIR}/../rdist -DOS_H=\"os-openbsd.h\"
+#CFLAGS+=-Wall -pedantic
.include <bsd.prog.mk>
diff -uw /usr/src/usr.bin/rdistd/filesys.c rdistd/filesys.c
--- /usr/src/usr.bin/rdistd/filesys.c Thu Oct 29 00:34:06 2009
+++ rdistd/filesys.c Mon Mar 28 16:28:11 2011
@@ -402,7 +402,7 @@
* information.
*/
int
-getfilesysinfo(char *file, long *freespace, long *freefiles)
+getfilesysinfo(char *file, off_t *freespace, off_t *freefiles)
{
#if defined(STATFS_TYPE)
static statfs_t statfsbuf;
diff -uw /usr/src/usr.bin/rdistd/server.c rdistd/server.c
--- /usr/src/usr.bin/rdistd/server.c Thu Oct 29 00:34:06 2009
+++ rdistd/server.c Sat Apr 9 15:17:21 2011
@@ -41,8 +41,8 @@
int catname = 0; /* cat name to target name */
char *sptarget[32]; /* stack of saved ptarget's for directories */
char *fromhost = NULL; /* Client hostname */
-static long min_freespace = 0; /* Minimium free space on a filesystem */
-static long min_freefiles = 0; /* Minimium free # files on a filesystem */
+static off_t min_freespace = 0; /* Minimium free space on a filesystem
*/
+static off_t min_freefiles = 0; /* Minimium free # files on a
filesystem */
int oumask; /* Old umask */
static int cattarget(char *);
@@ -656,8 +656,8 @@
case S_IFIFO:
#endif
#endif
- (void) sendcmd(QC_YES, "%ld %ld %o %s %s",
- (long) stb.st_size, stb.st_mtime,
+ (void) sendcmd(QC_YES, "%lld %ld %o %s %s",
+ (long long) stb.st_size, stb.st_mtime,
stb.st_mode & 07777,
getusername(stb.st_uid, target, options),
getgroupname(stb.st_gid, target, options));
@@ -794,13 +794,13 @@
wrerr = 0;
olderrno = 0;
for (i = 0; i < size; i += BUFSIZ) {
- int amt = BUFSIZ;
+ size_t amt = BUFSIZ;
cp = buf;
if (i + amt > size)
amt = size - i;
do {
- int j;
+ size_t j;
j = readrem(cp, amt);
if (j <= 0) {
@@ -1350,7 +1350,7 @@
fatalerr("Expected digit, got '%s'.", cp);
return;
}
- min_freespace = (unsigned long) atoi(cp);
+ min_freespace = (off_t) atoll(cp);
break;
case SC_FREEFILES: /* Minimium free files */
@@ -1358,7 +1358,7 @@
fatalerr("Expected digit, got '%s'.", cp);
return;
}
- min_freefiles = (unsigned long) atoi(cp);
+ min_freefiles = (off_t) atoll(cp);
break;
case SC_LOGGING: /* Logging options */
@@ -1396,7 +1396,7 @@
char *owner, *group, *file;
char new[MAXPATHLEN];
char fileb[MAXPATHLEN];
- long freespace = -1, freefiles = -1;
+ off_t freespace = -1, freefiles = -1;
char *cp = cmd;
/*
@@ -1420,7 +1420,7 @@
/*
* Get file size
*/
- size = strtol(cp, &cp, 10);
+ size = (off_t) strtoll(cp, &cp, 10);
if (*cp++ != ' ') {
error("recvit: size not delimited");
return;
@@ -1429,7 +1429,7 @@
/*
* Get modification time
*/
- mtime = strtol(cp, &cp, 10);
+ mtime = (time_t) strtol(cp, &cp, 10);
if (*cp++ != ' ') {
error("recvit: mtime not delimited");
return;
@@ -1438,7 +1438,7 @@
/*
* Get access time
*/
- atime = strtol(cp, &cp, 10);
+ atime = (time_t) strtol(cp, &cp, 10);
if (*cp++ != ' ') {
error("recvit: atime not delimited");
return;
@@ -1478,8 +1478,8 @@
file = fileb;
debugmsg(DM_MISC,
- "recvit: opts = %04o mode = %04o size = %d mtime = %d",
- opts, mode, size, mtime);
+ "recvit: opts = %04o mode = %04o size = %lld mtime = %d",
+ opts, mode, (long long) size, mtime);
debugmsg(DM_MISC,
"recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",
owner, group, file, catname, (type == S_IFDIR) ? 1 : 0);
@@ -1523,7 +1523,7 @@
*/
if (min_freespace || min_freefiles) {
/* Convert file size to kilobytes */
- long fsize = (long) (size / 1024);
+ off_t fsize = (off_t) (size / ((off_t) 1024));
if (getfilesysinfo(target, &freespace, &freefiles) != 0)
return;
@@ -1535,15 +1535,15 @@
if (min_freespace && (freespace >= 0) &&
(freespace - fsize < min_freespace)) {
error(
- "%s: Not enough free space on filesystem: min %d free %d",
- target, min_freespace, freespace);
+ "%s: Not enough free space on filesystem: min %lld free
%lld",
+ target, (long long) min_freespace, (long long)
freespace);
return;
}
if (min_freefiles && (freefiles >= 0) &&
(freefiles - 1 < min_freefiles)) {
error(
- "%s: Not enough free files on filesystem: min %d free %d",
- target, min_freefiles, freefiles);
+ "%s: Not enough free files on filesystem: min %lld free
%lld",
+ target, (long long) min_freefiles, (long long)
freefiles);
return;
}
}
@@ -1594,7 +1594,7 @@
/*
* Get file mode
*/
- mode = strtol(cp, &cp, 8);
+ mode = (int) strtol(cp, &cp, 8);
if (*cp++ != ' ') {
error("dochmog: mode not delimited");
return;
Only in /usr/src/usr.bin/rdist: CVS
diff -uw /usr/src/usr.bin/rdist/Makefile rdist/Makefile
--- /usr/src/usr.bin/rdist/Makefile Sun Jan 4 21:55:28 2004
+++ rdist/Makefile Mon Mar 28 22:03:24 2011
@@ -3,6 +3,7 @@
PROG= rdist
CFLAGS+=-I. -I${.CURDIR} -DOS_H=\"os-openbsd.h\"
+#CFLAGS+=-Wall -pedantic
SRCS= gram.y child.c client.c common.c distopt.c docmd.c expand.c \
isexec.c lookup.c message.c rdist.c
CLEANFILES+=gram.c y.tab.h
diff -uw /usr/src/usr.bin/rdist/child.c rdist/child.c
--- /usr/src/usr.bin/rdist/child.c Thu Oct 29 00:34:05 2009
+++ rdist/child.c Sun Mar 27 16:36:19 2011
@@ -177,7 +177,7 @@
readchild(CHILD *child)
{
char rbuf[BUFSIZ];
- int amt;
+ ssize_t amt;
debugmsg(DM_CALL, "[readchild(%s, %d, %d) start]",
child->c_name, child->c_pid, child->c_readfd);
@@ -196,7 +196,7 @@
*/
while ((amt = read(child->c_readfd, rbuf, sizeof(rbuf))) > 0) {
/* XXX remove these debug calls */
- debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %d bytes]",
+ debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %ld bytes]",
child->c_name, child->c_pid, child->c_readfd, amt);
(void) xwrite(fileno(stdout), rbuf, amt);
@@ -205,7 +205,7 @@
child->c_name, child->c_pid, child->c_readfd);
}
- debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %d errno = %d\n",
+ debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %ld errno = %d\n",
child->c_name, child->c_pid, child->c_readfd, amt, errno);
/*
diff -uw /usr/src/usr.bin/rdist/client.c rdist/client.c
--- /usr/src/usr.bin/rdist/client.c Thu Oct 29 00:34:06 2009
+++ rdist/client.c Sat Apr 9 15:07:05 2011
@@ -399,8 +399,8 @@
*/
ENCODE(ername, rname);
- (void) sendcmd(C_RECVREG, "%o %04o %ld %ld %ld %s %s %s",
- opts, stb->st_mode & 07777, (long) stb->st_size,
+ (void) sendcmd(C_RECVREG, "%o %04o %lld %ld %ld %s %s %s",
+ opts, stb->st_mode & 07777, (long long) stb->st_size,
stb->st_mtime, stb->st_atime,
user, group, ername);
if (response() < 0) {
@@ -409,8 +409,8 @@
}
- debugmsg(DM_MISC, "Send file '%s' %ld bytes\n", rname,
- (long) stb->st_size);
+ debugmsg(DM_MISC, "Send file '%s' %lld bytes\n", rname,
+ (long long) stb->st_size);
/*
* Set remote time out alarm handler.
@@ -666,8 +666,8 @@
* Gather and send basic link info
*/
ENCODE(ername, rname);
- (void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s",
- opts, stb->st_mode & 07777, (long) stb->st_size,
+ (void) sendcmd(C_RECVSYMLINK, "%o %04o %lld %ld %ld %s %s %s",
+ opts, stb->st_mode & 07777, (long long) stb->st_size,
stb->st_mtime, stb->st_atime,
user, group, ername);
if (response() < 0)
@@ -869,7 +869,7 @@
/*
* Parse size
*/
- size = (off_t) strtol(cp, (char **)&cp, 10);
+ size = (off_t) strtoll(cp, (char **)&cp, 10);
if (*cp++ != ' ') {
error("update: size not delimited");
return(US_NOTHING);
@@ -878,7 +878,7 @@
/*
* Parse mtime
*/
- mtime = strtol(cp, (char **)&cp, 10);
+ mtime = (time_t) strtol(cp, (char **)&cp, 10);
if (*cp++ != ' ') {
error("update: mtime not delimited");
return(US_NOTHING);
@@ -921,8 +921,8 @@
debugmsg(DM_MISC, "update(%s,) local mode %04o remote mode %04o\n",
rname, lmode, rmode);
- debugmsg(DM_MISC, "update(%s,) size %ld mtime %d owner '%s' grp '%s'\n",
- rname, (long) size, mtime, owner, group);
+ debugmsg(DM_MISC, "update(%s,) size %lld mtime %d owner '%s' grp
'%s'\n",
+ rname, (long long) size, mtime, owner, group);
if (statp->st_mtime != mtime) {
if (statp->st_mtime < mtime && IS_ON(opts, DO_YOUNGER)) {
@@ -935,8 +935,8 @@
}
if (statp->st_size != size) {
- debugmsg(DM_MISC, "size does not match (%ld != %ld).\n",
- (long) statp->st_size, (long) size);
+ debugmsg(DM_MISC, "size does not match (%lld != %lld).\n",
+ (long long) statp->st_size, (long long) size);
return(US_OUTDATE);
}
diff -uw /usr/src/usr.bin/rdist/common.c rdist/common.c
--- /usr/src/usr.bin/rdist/common.c Thu Oct 29 00:34:06 2009
+++ rdist/common.c Sun Mar 27 16:05:16 2011
@@ -69,7 +69,7 @@
char defgroup[64] = "bin"; /* Default group */
static int sendcmdmsg(int, char *, size_t);
-static int remread(int, u_char *, int);
+static ssize_t remread(int, u_char *, size_t);
static int remmore(void);
/*
@@ -354,17 +354,17 @@
*/
static u_char rembuf[BUFSIZ];
static u_char *remptr;
-static int remleft;
+static ssize_t remleft;
#define remc() (--remleft < 0 ? remmore() : *remptr++)
/*
* Back end to remote read()
*/
-static int
-remread(int fd, u_char *buf, int bufsiz)
+static ssize_t
+remread(int fd, u_char *buf, size_t bufsiz)
{
- return(read(fd, (char *)buf, bufsiz));
+ return(read(fd, buf, bufsiz));
}
static int
@@ -452,8 +452,8 @@
/*
* Non-line-oriented remote read.
*/
-int
-readrem(char *p, int space)
+ssize_t
+readrem(char *p, size_t space)
{
if (remleft <= 0) {
/*
diff -uw /usr/src/usr.bin/rdist/config-data.h rdist/config-data.h
--- /usr/src/usr.bin/rdist/config-data.h Mon Jun 2 22:56:14 2003
+++ rdist/config-data.h Sun Mar 27 16:05:11 2011
@@ -82,10 +82,10 @@
* Set default write(2) return and amount types.
*/
#if !defined(WRITE_RETURN_T)
-#define WRITE_RETURN_T int /* What write() returns
*/
+#define WRITE_RETURN_T ssize_t /* What write() returns */
#endif /* WRITE_RETURN_T */
#if !defined(WRITE_AMT_T)
-#define WRITE_AMT_T int /* Amount to write */
+#define WRITE_AMT_T size_t /* Amount to write */
#endif /* WRITE_AMT_T */
#endif /* __configdata_h__ */
diff -uw /usr/src/usr.bin/rdist/defs.h rdist/defs.h
--- /usr/src/usr.bin/rdist/defs.h Wed Jan 2 12:44:11 2008
+++ rdist/defs.h Sun Mar 27 16:05:11 2011
@@ -370,7 +370,7 @@
void sighandler(int);
int sendcmd(char, char *, ...);
int remline(u_char *, int, int);
-int readrem(char *, int);
+ssize_t readrem(char *, size_t);
char *getusername(UID_T, char *, opt_t);
char *getgroupname(GID_T, char *, opt_t);
int response(void);
@@ -420,7 +420,7 @@
int is_nfs_mounted(char *, struct stat *, int *);
int is_ro_mounted(char *, struct stat *, int *);
int is_symlinked(char *, struct stat *, int *);
-int getfilesysinfo(char *, long *, long *);
+int getfilesysinfo(char *, off_t *, off_t *);
/* gram.c */
int yylex(void);
diff -uw /usr/src/usr.bin/rdist/docmd.c rdist/docmd.c
--- /usr/src/usr.bin/rdist/docmd.c Thu Oct 29 00:34:06 2009
+++ rdist/docmd.c Sat Apr 9 15:07:05 2011
@@ -308,7 +308,7 @@
char *ruser, *cp;
static char *cur_host = NULL;
extern char *locuser;
- extern long min_freefiles, min_freespace;
+ extern off_t min_freefiles, min_freespace;
extern char *remotemsglist;
char tuser[BUFSIZ], buf[BUFSIZ];
u_char respbuff[BUFSIZ];
@@ -404,8 +404,8 @@
return(0);
}
if (min_freespace) {
- (void) sendcmd(C_SETCONFIG, "%c%d", SC_FREESPACE,
- min_freespace);
+ (void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREESPACE,
+ (long long) min_freespace);
if (response() < 0)
return(0);
}
diff -uw /usr/src/usr.bin/rdist/rdist.c rdist/rdist.c
--- /usr/src/usr.bin/rdist/rdist.c Thu Oct 29 00:34:06 2009
+++ rdist/rdist.c Sun Mar 27 16:05:11 2011
@@ -42,8 +42,8 @@
char *distfile = NULL; /* Name of distfile to
use */
int maxchildren = MAXCHILDREN; /* Max no of concurrent PIDs */
int nflag = 0; /* Say without doing */
-long min_freespace = 0; /* Min filesys free space */
-long min_freefiles = 0; /* Min filesys free # files */
+off_t min_freespace = 0; /* Min filesys free space */
+off_t min_freefiles = 0; /* Min filesys free # files */
FILE *fin = NULL; /* Input file pointer */
char localmsglist[] = "stdout=all:notify=all:syslog=nerror,ferror";
char *remotemsglist = NULL;
@@ -161,7 +161,7 @@
usage();
}
if (c == 'a')
- min_freespace = atoi(optarg);
+ min_freespace = atoll(optarg);
else if (c == 'A')
min_freefiles = atoi(optarg);
else if (c == 'M')