Add __printflike's where possible and fix all related bugs & issues.
authorSascha Wildner <saw@online.de>
Sat, 15 Jan 2011 02:43:46 +0000 (03:43 +0100)
committerSascha Wildner <saw@online.de>
Sat, 15 Jan 2011 02:43:46 +0000 (03:43 +0100)
83 files changed:
bin/cpdup/cpdup.c
bin/cpdup/cpdup.h
bin/cpdup/hcproto.c
bin/test/test.c
games/bs/bs.c
games/cribbage/cribbage.h
games/hack/alloc.c
games/hack/hack.h
games/hack/hack.unix.c
games/phantasia/misc.c
games/quiz/quiz.c
games/trek/main.c
games/trek/trek.h
lib/libc/gen/err.c
lib/libc/stdlib/nmalloc.c
lib/libevtr/evtr.c
lib/libevtr/ktrfmt.tab.c
lib/libevtr/ktrfmt.y
lib/libfetch/common.h
lib/libfetch/ftp.c
lib/libfetch/http.c
lib/libftpio/ftpio.c
lib/libkvm/kvm.c
lib/libkvm/kvm_private.h
lib/libkvm/kvm_proc.c
lib/libnetgraph/debug.c
lib/libnetgraph/netgraph.h
lib/libpam/pam_mod_misc.h
lib/pam_module/pam_lastlog/pam_lastlog.c
lib/pam_module/pam_login_access/pam_login_access.c
libexec/atrun/atrun.c
libexec/dma/dma.h
libexec/pppoed/pppoed.c
libexec/rshd/rshd.c
libexec/rtld-elf/malloc.c
sbin/cryptdisks/cryptdisks.c
sbin/devfsctl/devfsctl.h
sbin/fsck/fsck.h
sbin/fsck/fsutil.c
sbin/hammer/cmd_cleanup.c
sbin/hammer/hammer_util.h
sbin/ifconfig/ifieee80211.c
sbin/init/init.c
sbin/ip6fw/ip6fw.c
sbin/iscontrol/iscontrol.h
sbin/jscan/jscan.h
sbin/newfs/newfs.c
sbin/rconfig/defs.h
sbin/restore/extern.h
sys/dev/disk/sdhci/sdhci.c
sys/dev/raid/hptmv/hptproc.c
usr.bin/getent/getent.c
usr.bin/make/arch.c
usr.bin/make/job.c
usr.bin/make/parse.h
usr.bin/make/util.h
usr.bin/make/var.c
usr.bin/rdist/defs.h
usr.bin/rdist/main.c
usr.bin/rdist/server.c
usr.bin/sockstat/sockstat.c
usr.bin/unifdef/unifdef.c
usr.bin/whois/whois.c
usr.bin/window/defs.h
usr.bin/window/ww.h
usr.sbin/atm/atmarpd/atmarp_var.h
usr.sbin/atm/scspd/scsp_config.c
usr.sbin/atm/scspd/scsp_config_parse.y
usr.sbin/atm/scspd/scsp_log.c
usr.sbin/atm/scspd/scsp_var.h
usr.sbin/btxld/btxld.c
usr.sbin/dntpd/defs.h
usr.sbin/dntpd/log.c
usr.sbin/dntpd/socket.c
usr.sbin/ftp-proxy/ftp-proxy.c
usr.sbin/mrouted/mtrace.c
usr.sbin/mtree/create.c
usr.sbin/nscd/log.h
usr.sbin/pfctl/parse.y
usr.sbin/pfctl/pfctl_table.c
usr.sbin/pflogd/pflogd.c
usr.sbin/pflogd/pflogd.h
usr.sbin/sdpd/log.h

index 6ec6a46..a3c8063 100644 (file)
@@ -746,7 +746,8 @@ DoCopy(copy_info_t info, struct stat *stat1, int depth)
                 hltdelete(hln);
                 hln = NULL;
                if (tryrelink) {
-                   logerr("%-20s hardlink: will attempt to copy normally\n");
+                   logerr("%-20s hardlink: will attempt to copy normally\n",
+                       (dpath ? dpath : spath));
                    goto relink;
                }
                ++r;
index a93dfb4..98cd319 100644 (file)
 #include "compat_sun.h"
 #endif
 
-void logstd(const char *ctl, ...);
-void logerr(const char *ctl, ...);
-char *mprintf(const char *ctl, ...);
-void fatal(const char *ctl, ...);
+void logstd(const char *ctl, ...) __printflike(1, 2);
+void logerr(const char *ctl, ...) __printflike(1, 2);
+char *mprintf(const char *ctl, ...) __printflike(1, 2);
+void fatal(const char *ctl, ...) __printf0like(1, 2);
 char *fextract(FILE *fi, int n, int *pc, int skip);
 
 int16_t hc_bswap16(int16_t var);
index 6812c43..1313c2e 100644 (file)
@@ -47,6 +47,8 @@ static int rc_getgroups(hctransaction_t trans, struct HCHead *);
 
 static int getmygroups(gid_t **gidlist);
 
+static int silentwarning(int *, const char *, ...) __printflike(2, 3);
+
 struct HCDesc HCDispatchTable[] = {
     { HC_HELLO,                rc_hello },
     { HC_STAT,         rc_stat },
index f20be6d..6f3e2b6 100644 (file)
@@ -30,7 +30,7 @@
 #define main testcmd
 #include "bltin/bltin.h"
 #else
-static void error(const char *, ...) __attribute__((__noreturn__));
+static void error(const char *, ...) __dead2 __printflike(1, 2);
 
 static void
 error(const char *msg, ...)
index 14aa2d8..98c25fd 100644 (file)
@@ -131,6 +131,7 @@ static int salvo, blitz, closepack;
 
 #define        PR      addstr
 
+static void prompt(int, const char *, ...) __printflike(2, 3);
 static bool checkplace (int, ship_t *, int);
 static int getcoord (int);
 int playagain (void);
index 9a90d1a..468083f 100644 (file)
@@ -56,7 +56,7 @@ extern  bool          quiet;                  /* if suppress random mess */
 
 extern  char           explstr[];              /* string for explanation */
 
-void    addmsg(const char *, ...);
+void    addmsg(const char *, ...) __printflike(1, 2);
 int     adjust(CARD []);
 bool    anymove(CARD [], int, int);
 void    bye(void);
@@ -75,7 +75,7 @@ void   intr(int);
 bool    isone(CARD, CARD [], int);
 void    makedeck(CARD []);
 void    makeknown(CARD [], int);
-void    msg(const char *, ...);
+void    msg(const char *, ...) __printflike(1, 2);
 bool    msgcard(CARD, bool);
 int     number(int, int, const char *);
 int     pegscore(CARD, CARD [], int, int);
index 0099ce8..5d72997 100644 (file)
@@ -31,7 +31,7 @@ alloc(size_t lth)
        void *ptr;
 
        if ((ptr = malloc(lth)) == NULL)
-               panic("Cannot get %d bytes", lth);
+               panic("Cannot get %zd bytes", lth);
        return (ptr);
 }
 
index a18554f..f875387 100644 (file)
@@ -346,7 +346,7 @@ void        mklev(void);
 /* hack.main.c */
 void   glo(int);
 void   askname(void);
-void   impossible(const char *, ...);
+void   impossible(const char *, ...) __printflike(1, 2);
 void   stop_occupation(void);
 
 /* hack.makemon.c */
@@ -456,7 +456,7 @@ int dodip(void);
 
 /* hack.pri.c */
 void   swallowed(void);
-void   panic(const char *, ...);
+void   panic(const char *, ...) __printflike(1, 2);
 void   atl(int, int, char);
 void   on_scr(int, int);
 void   tmp_at(schar, schar);
@@ -588,8 +588,8 @@ void        addtopl(const char *);
 void   more(void);
 void   cmore(const char *);
 void   clrlin(void);
-void   pline(const char *, ...);
-void   vpline(const char *, va_list);
+void   pline(const char *, ...) __printflike(1, 2);
+void   vpline(const char *, va_list) __printflike(1, 0);
 void   putsym(char);
 void   putstr(const char *);
 
@@ -616,7 +616,7 @@ void                 drown(void);
 void    gettty(void);
 void    settty(const char *);
 void    setftty(void);
-void    error(const char *, ...);
+void    error(const char *, ...) __printflike(1, 2);
 void    getlin(char *);
 void    getret(void);
 void    cgetret(const char *);
index 2200786..7efe5c3 100644 (file)
@@ -182,7 +182,7 @@ getlock(void)
                        printf("I don't know what is wrong.");
                }
                getret();
-               error("");
+               error("%s", "");
                /* NOTREACHED */
        }
 
index 30df78a..fba4d7e 100644 (file)
@@ -1181,7 +1181,7 @@ readmessage(void)
 void
 error(const char *whichfile)
 {
-       int (*funcp)(const char *, ...);
+       int (*funcp)(const char *, ...) __printflike(1, 2);
 
        if (Windows) {
                funcp = (void *)printw;
index f9a9df5..a98d19f 100644 (file)
@@ -55,7 +55,7 @@ static u_int qsize;
 
 char   *appdstr (char *, char *, size_t);
 void    downcase (char *);
-void    err (const char *, ...);
+void    err (const char *, ...) __printflike(1, 2);
 void    get_cats (char *, char *);
 void    get_file (const char *);
 char   *next_cat (char *);
index 5a4cb45..4a29560 100644 (file)
@@ -188,7 +188,7 @@ main(int argc, char **argv)
                av++;
        }
        if (ac > 2)
-               syserr(0, "arg count");
+               syserr("arg count");
 #if 0
        if (ac > 1)
                f_log = fopen(av[0], opencode);
index dbe3753..c5d977c 100644 (file)
@@ -434,7 +434,7 @@ const char  *systemname(struct quad *);
 void   torped(int);
 char   *bmove(const void *, void *, size_t);
 bool   sequal(const char *, const char *);
-void   syserr(const char *, ...);
+void   syserr(const char *, ...) __printflike(1, 2);
 void   visual(int);
 void   warp(int, int, double);
 void   dowarp(int);
index 7b72d0d..e93dde2 100644 (file)
@@ -67,6 +67,8 @@ err_set_exit(void (*ef)(int))
 
 __weak_reference(_err, err);
 
+void _err(int, const char *, ...) __printflike(2, 3);
+
 void
 _err(int eval, const char *fmt, ...)
 {
@@ -132,6 +134,8 @@ verrx(int eval, const char *fmt, va_list ap)
 
 __weak_reference(_warn, warn);
 
+void _warn(const char *, ...) __printflike(1, 2);
+
 void
 _warn(const char *fmt, ...)
 {
index a8c20d3..4ce6f01 100644 (file)
@@ -344,7 +344,7 @@ static void mtmagazine_init(void);
 static void mtmagazine_destructor(void *);
 static slzone_t zone_alloc(int flags);
 static void zone_free(void *z);
-static void _mpanic(const char *ctl, ...);
+static void _mpanic(const char *ctl, ...) __printflike(1, 2);
 static void malloc_init(void) __constructor(0);
 #if defined(INVARIANTS)
 static void chunk_mark_allocated(slzone_t z, void *chunk);
index 2cda5e2..773422b 100644 (file)
@@ -333,9 +333,9 @@ evtr_cpu(evtr_t evtr, int c)
        return &evtr->cpus[c];
 }
 
-static
-int
-parse_format_data(evtr_event_t ev, const char *fmt, ...) __attribute__((format (scanf, 2, 3)));
+static int parse_format_data(evtr_event_t ev, const char *fmt, ...)
+              __printflike(2, 3) __scanflike(2, 3);
+
 static
 int
 parse_format_data(evtr_event_t ev, const char *fmt, ...)
index 23c3aef..248b14e 100644 (file)
@@ -106,6 +106,9 @@ int __ktrfmtlex(YYSTYPE *);
 
 void __ktrfmt_error (struct ktrfmt_parse_ctx *, const char *);
 
+static void do_parse_err(struct ktrfmt_parse_ctx *, const char *, ...)
+               __printflike(2, 3);
+
 static
 void
 do_parse_err(struct ktrfmt_parse_ctx *ctx, const char *fmt, ...)
index 15ecf0b..357ded5 100644 (file)
@@ -27,6 +27,9 @@ int __ktrfmtlex(YYSTYPE *);
 
 void __ktrfmt_error (struct ktrfmt_parse_ctx *, const char *);
 
+static void do_parse_err(struct ktrfmt_parse_ctx *, const char *, ...)
+               __printflike(2, 3);
+
 static
 void
 do_parse_err(struct ktrfmt_parse_ctx *ctx, const char *fmt, ...)
index 1ad418e..1ba13da 100644 (file)
@@ -74,7 +74,7 @@ struct iovec;
 
 void            fetch_seterr(struct fetcherr *, int);
 void            fetch_syserr(void);
-void            fetch_info(const char *, ...);
+void            fetch_info(const char *, ...) __printflike(1, 2);
 int             fetch_default_port(const char *);
 int             fetch_default_proxy_port(const char *);
 int             fetch_bind(int, int, const char *);
index bf439d0..5aa0cf0 100644 (file)
@@ -99,6 +99,7 @@
 #define FTP_SYNTAX_ERROR               500
 #define FTP_PROTOCOL_ERROR             999
 
+static int ftp_cmd(conn_t *, const char *, ...) __printflike(2, 3);
 static struct url cached_host;
 static conn_t  *cached_connection;
 
@@ -324,7 +325,7 @@ ftp_cwd(conn_t *conn, const char *file)
                        ++beg, ++i;
                for (++i; file + i < end && file[i] != '/'; ++i)
                        /* nothing */ ;
-               e = ftp_cmd(conn, "CWD %.*s", file + i - beg, beg);
+               e = ftp_cmd(conn, "CWD %.*s", (int)(file + i - beg), beg);
                if (e != FTP_FILE_ACTION_OK) {
                        ftp_seterr(e);
                        return (-1);
index 86b3e23..f65e770 100644 (file)
@@ -128,6 +128,8 @@ struct httpio
 #endif
 };
 
+static int http_cmd(conn_t *, const char *, ...) __printflike(2, 3);
+
 /*
  * Get next chunk header
  */
@@ -933,7 +935,7 @@ http_request(struct url *URL, const char *op, struct url_stat *us,
                if (url->offset > 0)
                        http_cmd(conn, "Range: bytes=%lld-", (long long)url->offset);
                http_cmd(conn, "Connection: close");
-               http_cmd(conn, "");
+               http_cmd(conn, "%s", "");
 
                /*
                 * Force the queued request to be dispatched.  Normally, one
index 1c8e494..3b3c5cb 100644 (file)
@@ -29,6 +29,7 @@
 #include <ctype.h>
 #include <errno.h>
 #include <ftpio.h>
+#include <inttypes.h>
 #include <netdb.h>
 #include <signal.h>
 #include <stdarg.h>
@@ -58,7 +59,7 @@ static int    writes(int fd, const char *s);
 static char    *get_a_line(FTP_t ftp);
 static int     get_a_number(FTP_t ftp, char **q);
 static int     botch(const char *func, const char *botch_state);
-static int     cmd(FTP_t ftp, const char *fmt, ...);
+static int     cmd(FTP_t ftp, const char *fmt, ...) __printflike(2, 3);
 static int     ftp_login_session(FTP_t ftp, const char *host, int af,
                                  const char *user, const char *passwd,
                                  int port, int verbose);
@@ -928,7 +929,7 @@ ftp_file_op(FTP_t ftp, const char *operation, const char *file, FILE **fp,
        }
 
        if (seekto && *seekto) {
-           i = cmd(ftp, "REST %d", *seekto);
+           i = cmd(ftp, "REST %" PRId64, *seekto);
            if (i < 0 || FTP_TIMEOUT(i)) {
                close(s);
                ftp->error = i;
@@ -985,7 +986,7 @@ ftp_file_op(FTP_t ftp, const char *operation, const char *file, FILE **fp,
        if (sin.sin4.sin_family == AF_INET) {
             u_long a;
            a = ntohl(sin.sin4.sin_addr.s_addr);
-           i = cmd(ftp, "PORT %d,%d,%d,%d,%d,%d",
+           i = cmd(ftp, "PORT %ld,%ld,%ld,%ld,%d,%d",
                    (a                   >> 24) & 0xff,
                    (a                   >> 16) & 0xff,
                    (a                   >>  8) & 0xff,
@@ -1029,7 +1030,7 @@ try_lprt:
            }
        }
        if (seekto && *seekto) {
-           i = cmd(ftp, "REST %d", *seekto);
+           i = cmd(ftp, "REST %" PRId64, *seekto);
            if (i < 0 || FTP_TIMEOUT(i)) {
                close(s);
                ftp->error = i;
index 97de539..6069b8c 100644 (file)
@@ -127,7 +127,7 @@ _kvm_malloc(kvm_t *kd, size_t n)
        void *p;
 
        if ((p = calloc(n, sizeof(char))) == NULL)
-               _kvm_err(kd, kd->program, "can't allocate %u bytes: %s",
+               _kvm_err(kd, kd->program, "can't allocate %zd bytes: %s",
                         n, strerror(errno));
        return (p);
 }
index 4a50bf9..3dcb562 100644 (file)
@@ -98,15 +98,16 @@ kvm_notrans(kvm_t *kd)
 /*
  * Functions used internally by kvm, but across kvm modules.
  */
-void    _kvm_err (kvm_t *kd, const char *program, const char *fmt, ...);
+void    _kvm_err (kvm_t *kd, const char *program, const char *fmt, ...)
+            __printflike(3, 4);
 void    _kvm_freeprocs (kvm_t *kd);
 void    _kvm_freevtop (kvm_t *);
 int     _kvm_initvtop (kvm_t *);
 int     _kvm_kvatop (kvm_t *, u_long, off_t *);
 void   *_kvm_malloc (kvm_t *kd, size_t);
 void   *_kvm_realloc (kvm_t *kd, void *, size_t);
-void    _kvm_syserr
-           (kvm_t *kd, const char *program, const char *fmt, ...);
+void    _kvm_syserr (kvm_t *kd, const char *program, const char *fmt, ...)
+            __printflike(3, 4);
 int     _kvm_uvatop (kvm_t *, const struct proc *, u_long, u_long *);
 void     _kvm_minidump_freevtop(kvm_t *);
 int      _kvm_minidump_initvtop(kvm_t *);
index 1c39636..08d8aac 100644 (file)
@@ -234,7 +234,7 @@ kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
 
        for (; p != NULL; p = proc.p_list.le_next) {
                if (KREAD(kd, (u_long)p, &proc)) {
-                       _kvm_err(kd, kd->program, "can't read proc at %x", p);
+                       _kvm_err(kd, kd->program, "can't read proc at %p", p);
                        return (-1);
                }
                if (KREAD(kd, (u_long)proc.p_ucred, &ucred)) {
@@ -263,14 +263,14 @@ kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
                }
 
                if (KREAD(kd, (u_long)proc.p_pgrp, &pgrp)) {
-                       _kvm_err(kd, kd->program, "can't read pgrp at %x",
+                       _kvm_err(kd, kd->program, "can't read pgrp at %p",
                                 proc.p_pgrp);
                        return (-1);
                }
                proc.p_pgrp = &pgrp;
                if (proc.p_pptr) {
                  if (KREAD(kd, (u_long)proc.p_pptr, &pproc)) {
-                       _kvm_err(kd, kd->program, "can't read pproc at %x",
+                       _kvm_err(kd, kd->program, "can't read pproc at %p",
                                 proc.p_pptr);
                        return (-1);
                  }
@@ -288,7 +288,7 @@ kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
                }
 
                if (KREAD(kd, (u_long)pgrp.pg_session, &sess)) {
-                       _kvm_err(kd, kd->program, "can't read session at %x",
+                       _kvm_err(kd, kd->program, "can't read session at %p",
                                pgrp.pg_session);
                        return (-1);
                }
@@ -297,7 +297,7 @@ kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
                if ((proc.p_flag & P_CONTROLT) && sess.s_ttyp != NULL) {
                        if (KREAD(kd, (u_long)sess.s_ttyp, &tty)) {
                                _kvm_err(kd, kd->program,
-                                        "can't read tty at %x", sess.s_ttyp);
+                                        "can't read tty at %p", sess.s_ttyp);
                                return (-1);
                        }
                        sess.s_ttyp = &tty;
@@ -310,7 +310,7 @@ kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
                        if (tty.t_pgrp != NULL) {
                                if (KREAD(kd, (u_long)tty.t_pgrp, &tpgrp)) {
                                        _kvm_err(kd, kd->program,
-                                                "can't read tpgrp at %x",
+                                                "can't read tpgrp at %p",
                                                tty.t_pgrp);
                                        return (-1);
                                }
@@ -375,7 +375,7 @@ kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
                        }
                        lwp.lwp_proc = &proc;
                        if (KREAD(kd, (u_long)lwp.lwp_thread, &thread)) {
-                               _kvm_err(kd, kd->program, "can't read thread at %x",
+                               _kvm_err(kd, kd->program, "can't read thread at %p",
                                    lwp.lwp_thread);
                                return (-1);
                        }
@@ -493,7 +493,7 @@ kvm_getprocs(kvm_t *kd, int op, int arg, int *cnt)
                }
                if (size % sizeof(struct kinfo_proc) != 0) {
                        _kvm_err(kd, kd->program,
-                               "proc size mismatch (%d total, %d chunks)",
+                               "proc size mismatch (%zd total, %zd chunks)",
                                size, sizeof(struct kinfo_proc));
                        return (0);
                }
@@ -910,7 +910,7 @@ kvm_uread(kvm_t *kd, pid_t pid, u_long uva, char *buf, size_t len)
        while (len > 0) {
                errno = 0;
                if (lseek(fd, (off_t)uva, 0) == -1 && errno != 0) {
-                       _kvm_err(kd, kd->program, "invalid address (%x) in %s",
+                       _kvm_err(kd, kd->program, "invalid address (%lx) in %s",
                            uva, procfile);
                        break;
                }
index 64b7a6a..7d0a53a 100644 (file)
@@ -95,8 +95,8 @@
 int     _gNgDebugLevel = 0;
 
 /* Debug printing functions */
-void    (*_NgLog) (const char *fmt,...) = warn;
-void    (*_NgLogx) (const char *fmt,...) = warnx;
+void    (*_NgLog) (const char *fmt,...) __printflike(1, 2) = warn;
+void    (*_NgLogx) (const char *fmt,...) __printflike(1, 2) = warnx;
 
 /* Internal functions */
 static const   char *NgCookie(int cookie);
@@ -200,8 +200,8 @@ _NgDebugMsg(const struct ng_mesg *msg, const char *path)
        NGLOGX("NG_MESG :");
        NGLOGX("  vers   %d", msg->header.version);
        NGLOGX("  arglen %d", msg->header.arglen);
-       NGLOGX("  flags  %ld", msg->header.flags);
-       NGLOGX("  token  %lu", (u_long)msg->header.token);
+       NGLOGX("  flags  %u", msg->header.flags);
+       NGLOGX("  token  %u", msg->header.token);
        NGLOGX("  cookie %s (%d)",
            NgCookie(msg->header.typecookie), msg->header.typecookie);
 
index 5b4a1bf..4d4ece8 100644 (file)
@@ -59,8 +59,8 @@ int   NgRecvAsciiMsg(int, struct ng_mesg *, size_t, char *);
 int    NgSendData(int, const char *, const u_char *, size_t);
 int    NgRecvData(int, u_char *, size_t, char *);
 int    NgSetDebug(int);
-void   NgSetErrLog(void (*)(const char *fmt, ...),
-           void (*)(const char *fmt, ...));
+void   NgSetErrLog(void (*)(const char *fmt, ...) __printflike(1, 2),
+           void (*)(const char *fmt, ...) __printflike(1, 2));
 __END_DECLS
 
 #endif
index 13a25f0..4f7ef4f 100644 (file)
@@ -42,7 +42,7 @@
 
 __BEGIN_DECLS
 void   _pam_verbose_error(pam_handle_t *, int, const char *,
-               const char *, const char *, ...);
+               const char *, const char *, ...) __printflike(5, 6);
 __END_DECLS
 
 #define        PAM_LOG(...) \
index 52d0e6a..078752c 100644 (file)
@@ -88,6 +88,8 @@ static void domsg(pam_handle_t *, time_t, const char *, size_t, const char *,
     size_t);
 #endif
 
+static void logit(int, const char *, ...) __printflike(2, 3);
+
 static void
 logit(int level, const char *fmt, ...)
 {
index ae79dea..445a0c7 100644 (file)
@@ -84,14 +84,14 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags __unused,
                if (login_access(user, tty) != 0)
                        return (PAM_SUCCESS);
                PAM_VERBOSE_ERROR("%s is not allowed to log in on %s",
-                   user, tty);
+                   (const char *)user, (const char *)tty);
        } else {
                PAM_LOG("Checking login.access for user %s from host %s",
                    (const char *)user, (const char *)rhost);
                if (login_access(user, rhost) != 0)
                        return (PAM_SUCCESS);
                PAM_VERBOSE_ERROR("%s is not allowed to log in from %s",
-                   user, rhost);
+                   (const char *)user, (const char *)rhost);
        }
 
        return (PAM_AUTH_ERR);
index 9229950..af4b7a0 100644 (file)
@@ -90,8 +90,8 @@ gid_t real_gid, effective_gid;
 static const char * const atrun = "atrun"; /* service name for syslog etc. */
 static int debug = 0;
 
-void           perr(const char *fmt, ...);
-void           perrx(const char *fmt, ...);
+void           perr(const char *fmt, ...) __printflike(1, 2);
+void           perrx(const char *fmt, ...) __printflike(1, 2);
 static void    usage(void);
 
 /* Local functions */
@@ -238,12 +238,12 @@ run_file(const char *filename, uid_t uid, gid_t gid)
     mailname = mailbuf;
 
     if (nuid != uid)
-       perrx("Job %s - userid %ld does not match file uid %lu",
-               filename, nuid, (unsigned long)uid);
+       perrx("Job %s - userid %u does not match file uid %u",
+               filename, nuid, uid);
 
     if (ngid != gid)
-       perrx("Job %s - groupid %ld does not match file gid %lu",
-               filename, ngid, (unsigned long)gid);
+       perrx("Job %s - groupid %u does not match file gid %u",
+               filename, ngid, gid);
 
     fclose(stream);
 
index 5052050..97aab7e 100644 (file)
@@ -178,7 +178,7 @@ int dns_get_mx_list(const char *, int, struct mx_hostentry **, int);
 /* net.c */
 char *ssl_errstr(void);
 int read_remote(int, int, char *);
-ssize_t send_remote_command(int, const char*, ...);
+ssize_t send_remote_command(int, const char*, ...) __printflike(2, 3);
 int deliver_remote(struct qitem *, const char **);
 
 /* base64.c */
@@ -206,9 +206,9 @@ int readmail(struct queue *, int, int);
 
 /* util.c */
 const char *hostname(void);
-void setlogident(const char *, ...);
-void errlog(int, const char *, ...);
-void errlogx(int, const char *, ...);
+void setlogident(const char *, ...) __printf0like(1, 2);
+void errlog(int, const char *, ...) __printf0like(2, 3);
+void errlogx(int, const char *, ...) __printf0like(2, 3);
 void set_username(void);
 void deltmp(void);
 int open_locked(const char *, int, ...);
index 04e326f..d856c33 100644 (file)
@@ -66,6 +66,7 @@
 #define        HISMACADDR              "HISMACADDR"
 #define        SESSION_ID              "SESSION_ID"
 
+static void nglog(const char *, ...) __printflike(1, 2);
 static void nglogx(const char *, ...) __printflike(1, 2);
 
 static int ReceivedSignal;
index 8eebc16..8bb9089 100644 (file)
@@ -102,7 +102,7 @@ union sockunion {
 #define su_port                su_si.si_port
 
 void    doit(union sockunion *);
-void    error(const char *, ...);
+void    error(const char *, ...) __printflike(1, 2);
 void    getstr(char *, int, const char *);
 int     local_domain(char *);
 char   *topdomain(char *);
index faea9f0..3650039 100644 (file)
@@ -68,6 +68,7 @@
 
 static void morecore();
 static int findbucket();
+static void xprintf(const char *, ...) __printflike(1, 2);
 
 /*
  * Pre-allocate mmap'ed pages
index 368c503..06393ed 100644 (file)
@@ -46,6 +46,8 @@
 #define CRYPTDISKS_START       1
 #define CRYPTDISKS_STOP                2
 
+static void syntax_error(const char *, ...) __printflike(1, 2);
+
 static int line_no = 1;
 
 static int yesDialog(char *msg __unused)
index 6c33977..ca3fc4f 100644 (file)
@@ -73,7 +73,7 @@ void add_rule(struct rule *);
 int rule_apply(void);
 void dump_config(void);
 int read_config(const char *, int);
-int syntax_error(const char *fmt, ...);
+int syntax_error(const char *fmt, ...) __printflike(1, 2);
 void rule_tab(void);
 void delete_rules(void);
 #endif
index c6236ba..50348b1 100644 (file)
@@ -296,7 +296,7 @@ void                inodirty(void);
 struct inostat *inoinfo(ufs1_ino_t);
 int            linkup(ufs1_ino_t, ufs1_ino_t, char *);
 int            makeentry(ufs1_ino_t, ufs1_ino_t, char *);
-void           panic(const char *, ...);
+void           panic(const char *, ...) __printflike(1, 2);
 void           pass1(void);
 void           pass1b(void);
 int            pass1check(struct inodesc *);
@@ -305,10 +305,10 @@ void              pass3(void);
 void           pass4(void);
 int            pass4check(struct inodesc *);
 void           pass5(void);
-void           pfatal(const char *, ...);
+void           pfatal(const char *, ...) __printflike(1, 2);
 void           pinode(ufs1_ino_t);
 void           propagate(void);
-void           pwarn(const char *, ...);
+void           pwarn(const char *, ...) __printflike(1, 2);
 int            reply(char *);
 void           setinodebuf(ufs1_ino_t);
 int            setup(char *);
index 54941b5..6c2ed2e 100644 (file)
@@ -65,7 +65,7 @@ static int preen = 0;
 
 extern char *__progname;
 
-static void vmsg(int, const char *, va_list);
+static void vmsg(int, const char *, va_list) __printflike(2, 0);
 
 void
 setcdevname(const char *cd, int pr)
index d0f3a0e..3eaf694 100644 (file)
@@ -97,7 +97,7 @@ static int cleanup_recopy(const char *path, const char *snapshots_path,
 static int cleanup_dedup(const char *path, const char *snapshots_path,
                        int arg1, int arg2);
 
-static void runcmd(int *resp, const char *ctl, ...);
+static void runcmd(int *resp, const char *ctl, ...) __printflike(2, 3);
 
 /*
  * WARNING: Do not make the SNAPSHOTS_BASE "/var/snapshots" because
index 2caa738..b2972e0 100644 (file)
@@ -158,5 +158,5 @@ void hammer_cache_del(struct cache_info *cache);
 void hammer_cache_used(struct cache_info *cache);
 void hammer_cache_flush(void);
 
-void panic(const char *ctl, ...);
+void panic(const char *ctl, ...) __printflike(1, 2);
 
index c986f92..aa7f1ca 100644 (file)
@@ -127,7 +127,7 @@ static      char spacer;
 
 static void LINE_INIT(char c);
 static void LINE_BREAK(void);
-static void LINE_CHECK(const char *fmt, ...);
+static void LINE_CHECK(const char *fmt, ...) __printflike(1, 2);
 
 static const char *modename[IEEE80211_MODE_MAX] = {
        [IEEE80211_MODE_AUTO]     = "auto",
index 2734f61..b7a7be5 100644 (file)
@@ -130,9 +130,9 @@ typedef struct init_session {
 static void     handle(sig_t, ...);
 static void     delset(sigset_t *, ...);
 
-static void     stall(const char *, ...);
-static void     warning(const char *, ...);
-static void     emergency(const char *, ...);
+static void     stall(const char *, ...) __printflike(1, 2);
+static void     warning(const char *, ...) __printflike(1, 2);
+static void     emergency(const char *, ...) __printflike(1, 2);
 static void     disaster(int);
 static void     badsys(int);
 static int      runshutdown(void);
index 76a870f..d2bd422 100644 (file)
@@ -108,7 +108,7 @@ static struct icmpcode icmp6codes[] = {
 
 static char ntop_buf[INET6_ADDRSTRLEN];
 
-static void show_usage(const char *fmt, ...);
+static void show_usage(const char *fmt, ...) __printf0like(1, 2);
 
 static int
 mask_bits(u_char *m_ad, int m_len)
index a8149ad..9fa0e25 100644 (file)
@@ -142,7 +142,7 @@ typedef int handler_t(isess_t *sess, pdu_t *pp);
 int    authenticateLogin(isess_t *sess);
 int    fsm(isc_opt_t *op);
 int    sendPDU(isess_t *sess, pdu_t *pp, handler_t *hdlr);
-int    addText(pdu_t *pp, char *fmt, ...);
+int    addText(pdu_t *pp, char *fmt, ...) __printflike(2, 3);
 void   freePDU(pdu_t *pp);
 int    xmitpdu(isess_t *sess, pdu_t *pp);
 int    recvpdu(isess_t *sess, pdu_t *pp);
index 464011e..2758413 100644 (file)
@@ -184,7 +184,7 @@ struct jdata *jseek(struct jfile *jf, int64_t transid,
 void jwrite(struct jfile *jf, struct jdata *jd);
 struct jdata *jref(struct jdata *jd);
 void jfree(struct jfile *jf, struct jdata *jd);
-void jf_warn(struct jfile *jf, const char *ctl, ...);
+void jf_warn(struct jfile *jf, const char *ctl, ...) __printflike(2, 3);
 
 struct jstream *jaddrecord(struct jsession *ss, struct jdata *jd);
 void jscan_dispose(struct jstream *js);
index cb7b5ad..714b750 100644 (file)
@@ -53,6 +53,7 @@
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>
+#include <inttypes.h>
 #include <paths.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -81,7 +82,7 @@ struct mntopt mopts[] = {
        MOPT_NULL,
 };
 
-void   fatal(const char *fmt, ...);
+void   fatal(const char *fmt, ...) __printflike(1, 2);
 
 #define        COMPAT                  /* allow non-labeled disks */
 
@@ -518,7 +519,7 @@ havelabel:
        if (fssize == 0)
                fssize = geom.d_media_blocks;
        if ((u_long)fssize > geom.d_media_blocks && !mfs) {
-              fatal("%s: maximum file system size is %lld blocks",
+              fatal("%s: maximum file system size is %" PRIu64 " blocks",
                     argv[0], geom.d_media_blocks);
        }
        if (rpm == 0) {
index 3fbab7a..f180afa 100644 (file)
@@ -88,8 +88,8 @@ extern void doClient(void);
 
 const char *parse_str(char **scanp, int flags);
 int udp_transact(struct sockaddr_in *sain, struct sockaddr_in *rsin, int *pfd,
-               char **bufp, int *lenp, const char *ctl, ...);
+       char **bufp, int *lenp, const char *ctl, ...) __printflike(6, 7);
 int tcp_transact(struct sockaddr_in *sain, FILE **pfi, FILE **pfo, char **bufp,
-               int *lenp, const char *ctl, ...);
+       int *lenp, const char *ctl, ...) __printf0like(6, 7);
 
 
index 3b427a2..8aecdc6 100644 (file)
@@ -70,13 +70,13 @@ long                 listfile(char *, ufs1_ino_t, int);
 ufs1_ino_t      lowerbnd(ufs1_ino_t);
 void            mktempname(struct entry *);
 void            moveentry(struct entry *, char *);
-void            msg(const char *, ...);
+void            msg(const char *, ...) __printflike(1, 2);
 char           *myname(struct entry *);
 void            newnode(struct entry *);
 void            newtapebuf(long);
 long            nodeupdates(char *, ufs1_ino_t, int);
 void            onintr(int);
-void            panic(const char *, ...);
+void            panic(const char *, ...) __printflike(1, 2);
 void            pathcheck(char *);
 struct direct  *pathsearch(const char *);
 void            printdumpinfo(void);
index d81d87f..9950bcf 100644 (file)
@@ -203,6 +203,9 @@ WR4(struct sdhci_slot *slot, bus_size_t off, uint32_t val)
        bus_write_4(slot->mem_res, off, val);
 }
 
+static int slot_printf(struct sdhci_slot *, const char *, ...)
+              __printflike(2, 3);
+
 /* bus entry points */
 static int sdhci_probe(device_t dev);
 static int sdhci_attach(device_t dev);
index 3b045b0..63dfc91 100644 (file)
@@ -348,6 +348,8 @@ get_disk_name(char *name, PDevice pDev)
        name[20] = '\0';
 }
 
+static int hpt_copy_info(HPT_GET_INFO *, char *, ...) __printf0like(2, 3);
+
 static int
 hpt_copy_info(HPT_GET_INFO *pinfo, char *fmt, ...)
 {
@@ -391,7 +393,7 @@ hpt_copy_disk_info(HPT_GET_INFO *pinfo, PVDevice pVDev, UINT iChan)
 #endif
                arrayname[0]=0;
 
-       hpt_copy_info(pinfo, "Channel %d  %s  %5dMB  %s %s\n",
+       hpt_copy_info(pinfo, "Channel %d  %s  %5lluMB  %s %s\n",
                iChan+1,
                name, pVDev->VDeviceCapacity>>11, status, arrayname);
 }
@@ -534,7 +536,7 @@ hpt_get_info(IAL_ADAPTER_T *pAdapter, HPT_GET_INFO *pinfo)
 #endif
                                get_disk_name(name, &pVDev->u.disk);
 
-                               hpt_copy_info(pinfo, "%2d  %s  %s  %5dMB  %-16s",
+                               hpt_copy_info(pinfo, "%2d  %s  %s  %5lluMB  %-16s",
                                        j, "Single disk", name, pVDev->VDeviceCapacity>>11,
                                        /* gmm 2001-6-19: Check if pDev has been added to an array. */
                                        ((pVDev->pParent) ? "Unavailable" : "Normal"));
index 05ac095..acbb830 100644 (file)
@@ -61,6 +61,8 @@
 
 static int     usage(void);
 static int     parsenum(const char *, unsigned long *);
+static void    printfmtstrings(char **, const char *, const char *,
+                   const char *fmt, ...) __printflike(4, 5);
 static int     ethers(int, char *[]);
 static int     group(int, char *[]);
 static int     hosts(int, char *[]);
index e357290..e795f08 100644 (file)
@@ -621,7 +621,7 @@ ArchArchiveNext(struct arfile *ar)
                                    ar->fname, strerror(errno)));
                        } else {
                                ArchError(("%s: cannot read nametab: "
-                                   "short read", ar->fname, strerror(errno)));
+                                   "short read", ar->fname));
                        }
                        return (-1);
                }
index eb7fdf9..f7c23ce 100644 (file)
@@ -362,7 +362,7 @@ static int  fifoMaster;
 #define        W_SETTERMSIG(st, val) W_SETMASKED(st, val, WTERMSIG)
 #define        W_SETEXITSTATUS(st, val) W_SETMASKED(st, val, WEXITSTATUS)
 
-typedef void AbortProc(const char [], ...);
+typedef void AbortProc(const char [], ...) __printflike(1, 2);
 
 static void JobRestart(Job *);
 static int JobStart(GNode *, int, Job *);
index 31930fb..df00890 100644 (file)
@@ -90,7 +90,7 @@ typedef void DirectiveHandler(Parser *, char *, int, int);
 #define        FPREFIX         "*F"    /* file part of PREFIX */
 #define        DPREFIX         "*D"    /* directory part of PREFIX */
 
-void Parse_Error(int, const char *, ...);
+void Parse_Error(int, const char *, ...) __printflike(2, 3);
 bool Parse_AnyExport(void);
 bool Parse_IsVar(char *);
 void Parse_DoVar(char *, struct GNode *);
index efd9eb9..77df795 100644 (file)
@@ -100,11 +100,11 @@ do {                                              \
  */
 #define FILENO(a) ((unsigned)fileno(a))
 
-void Debug(const char *, ...);
-void DebugM(const char *, ...);
-void Error(const char *, ...);
-void Fatal(const char *, ...) __dead2;
-void Punt(const char *, ...) __dead2;
+void Debug(const char *, ...) __printflike(1, 2);
+void DebugM(const char *, ...) __printflike(1, 2);
+void Error(const char *, ...) __printflike(1, 2);
+void Fatal(const char *, ...) __dead2 __printflike(1, 2);
+void Punt(const char *, ...) __dead2 __printflike(1, 2);
 void DieHorribly(void) __dead2;
 void Finish(int) __dead2;
 char *estrdup(const char *);
index f408a99..945a17d 100644 (file)
@@ -2310,7 +2310,7 @@ Var_Subst(const char str[], GNode *ctxt, bool err)
                                         */
                                        if (!errorReported) {
                                                Parse_Error(PARSE_FATAL,
-                                                           "Undefined variable \"%.*s\"", subvp.ptr - subvp.input, str);
+                                                           "Undefined variable \"%.*s\"", (int)(subvp.ptr - subvp.input), str);
                                        }
                                        errorReported = true;
                                        str = subvp.ptr;
@@ -2414,7 +2414,7 @@ Var_SubstOnly(const char var[], const char str[], bool err)
                                                 */
                                                if (!errorReported) {
                                                        Parse_Error(PARSE_FATAL,
-                                                                   "Undefined variable \"%.*s\"", subvp.ptr - subvp.input, str);
+                                                                   "Undefined variable \"%.*s\"", (int)(subvp.ptr - subvp.input), str);
                                                }
                                                errorReported = true;
                                                str = subvp.ptr;
index e05bf71..5a845e3 100644 (file)
@@ -168,17 +168,17 @@ char      *colon(char *);
 void    cleanup(int);
 void    define(char *);
 void    docmds(char **, int, char **);
-void    error(const char *, ...);
+void    error(const char *, ...) __printflike(1, 2);
 int     except(char *);
 struct namelist *
         expand(struct namelist *, int);
 char   *exptilde(char [], char *, int);
-void    fatal(const char *, ...);
+void    fatal(const char *, ...) __printflike(1, 2);
 int     inlist(struct namelist *, char *);
 void    insert(char *,
            struct namelist *, struct namelist *, struct subcmd *);
 void    install(char *, char *, int, int);
-void    dolog(FILE *, const char *, ...);
+void    dolog(FILE *, const char *, ...) __printflike(2, 3);
 struct namelist *
         lookup(char *, int, struct namelist *);
 void    lostconn(int);
index fe5e2bd..46eb734 100644 (file)
@@ -301,17 +301,3 @@ prnames(struct namelist *nl)
        }
        printf(")\n");
 }
-
-
-void
-warn(const char *fmt, ...)
-{
-       extern int yylineno;
-       va_list ap;
-
-       va_start(ap, fmt);
-       fprintf(stderr, "rdist: line %d: Warning: ", yylineno);
-       vfprintf(stderr, fmt, ap);
-       fprintf(stderr, "\n");
-       va_end(ap);
-}
index 3f6bdf4..1122da4 100644 (file)
@@ -64,7 +64,7 @@ static void   comment(char *);
 static void    dospecial(char *);
 static int     fchog(int, char *, char *, char *, int);
 static void    hardlink(char *);
-static void    note(const char *, ...);
+static void    note(const char *, ...) __printflike(1, 2);
 static void    query(char *);
 static void    recvf(char *, int);
 static void    removeit(struct stat *);
index fed7ba8..a256d7d 100644 (file)
@@ -86,6 +86,8 @@ struct sock {
        struct sock *next;
 };
 
+static int xprintf(const char *, ...) __printflike(1, 2);
+
 #define HASHSIZE 1009
 static struct sock *sockhash[HASHSIZE];
 
index 543db32..9e20204 100644 (file)
@@ -190,7 +190,7 @@ static bool             keepthis;           /* don't delete constant #if */
 static int              exitstat;              /* program exit status */
 
 static void             addsym(bool, bool, char *);
-static void             debug(const char *, ...);
+static void             debug(const char *, ...) __printflike(1, 2);
 static void             done(void);
 static void             error(const char *);
 static int              findsym(const char *);
@@ -658,26 +658,26 @@ eval_unary(const struct ops *ops, int *valp, const char **cpp)
 
        cp = skipcomment(*cpp);
        if (*cp == '!') {
-               debug("eval%d !", ops - eval_ops);
+               debug("eval%td !", ops - eval_ops);
                cp++;
                if (eval_unary(ops, valp, &cp) == LT_IF)
                        return (LT_IF);
                *valp = !*valp;
        } else if (*cp == '(') {
                cp++;
-               debug("eval%d (", ops - eval_ops);
+               debug("eval%td (", ops - eval_ops);
                if (eval_table(eval_ops, valp, &cp) == LT_IF)
                        return (LT_IF);
                cp = skipcomment(cp);
                if (*cp++ != ')')
                        return (LT_IF);
        } else if (isdigit((unsigned char)*cp)) {
-               debug("eval%d number", ops - eval_ops);
+               debug("eval%td number", ops - eval_ops);
                *valp = strtol(cp, &ep, 0);
                cp = skipsym(cp);
        } else if (strncmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
                cp = skipcomment(cp+7);
-               debug("eval%d defined", ops - eval_ops);
+               debug("eval%td defined", ops - eval_ops);
                if (*cp++ != '(')
                        return (LT_IF);
                cp = skipcomment(cp);
@@ -691,7 +691,7 @@ eval_unary(const struct ops *ops, int *valp, const char **cpp)
                        return (LT_IF);
                keepthis = false;
        } else if (!endsym(*cp)) {
-               debug("eval%d symbol", ops - eval_ops);
+               debug("eval%td symbol", ops - eval_ops);
                sym = findsym(cp);
                if (sym < 0)
                        return (LT_IF);
@@ -705,12 +705,12 @@ eval_unary(const struct ops *ops, int *valp, const char **cpp)
                cp = skipsym(cp);
                keepthis = false;
        } else {
-               debug("eval%d bad expr", ops - eval_ops);
+               debug("eval%td bad expr", ops - eval_ops);
                return (LT_IF);
        }
 
        *cpp = cp;
-       debug("eval%d = %d", ops - eval_ops, *valp);
+       debug("eval%td = %d", ops - eval_ops, *valp);
        return (*valp ? LT_TRUE : LT_FALSE);
 }
 
@@ -724,7 +724,7 @@ eval_table(const struct ops *ops, int *valp, const char **cpp)
        const char *cp;
        int val;
 
-       debug("eval%d", ops - eval_ops);
+       debug("eval%td", ops - eval_ops);
        cp = *cpp;
        if (ops->inner(ops+1, valp, &cp) == LT_IF)
                return (LT_IF);
@@ -736,14 +736,14 @@ eval_table(const struct ops *ops, int *valp, const char **cpp)
                if (op->str == NULL)
                        break;
                cp += strlen(op->str);
-               debug("eval%d %s", ops - eval_ops, op->str);
+               debug("eval%td %s", ops - eval_ops, op->str);
                if (ops->inner(ops+1, &val, &cp) == LT_IF)
                        return (LT_IF);
                *valp = op->fn(*valp, val);
        }
 
        *cpp = cp;
-       debug("eval%d = %d", ops - eval_ops, *valp);
+       debug("eval%td = %d", ops - eval_ops, *valp);
        return (*valp ? LT_TRUE : LT_FALSE);
 }
 
index 7cb71b7..fb48c33 100644 (file)
@@ -82,8 +82,8 @@ const char *ip_whois[] = { LNICHOST, RNICHOST, PNICHOST, BNICHOST, NULL };
 const char *port = DEFAULT_PORT;
 
 static char    *choose_server(const char *);
-static struct addrinfo *gethostinfo(const char *host, int exit_on_error);
-static void    s_asprintf(char **ret, const char *format, ...);
+static struct addrinfo *gethostinfo(const char *, int);
+static void    s_asprintf(char **, const char *, ...) __printflike(2, 3);
 static void    usage(void);
 static void    whois(const char *, const char *, int);
 
index 6ecdd5e..22fa807 100644 (file)
@@ -95,8 +95,7 @@ int           doconfig(void);
 void           dodefault(void);
 int            dolongcmd(char *, struct value *, int);
 int            dosource(char *);
-void           error(const char *, ...)
-    __attribute__((__format__(__printf__, 1, 2)));
+void           error(const char *, ...) __printflike(1, 2);
 void           err_end(void);
 int            findid(void);
 struct ww      *findselwin(void);
@@ -123,6 +122,6 @@ void                sizewin(struct ww *, int, int);
 void           startwin(struct ww *);
 void           stopwin(struct ww *);
 int            s_gettok(void);
-void           verror(const char *, va_list);
+void           verror(const char *, va_list) __printflike(1, 0);
 void           waitnl(struct ww *);
 int            waitnl1(struct ww *, const char *);
index 8bcbd25..595307a 100644 (file)
@@ -353,8 +353,7 @@ void        wwinsline(struct ww *, int);
 void   wwiomux(void);
 void   wwlabel(struct ww *, struct ww *, int, char *, int);
 void   wwmove(struct ww *, int, int);
-void   wwprintf(struct ww *, const char *, ...)
-    __attribute__((__format__(__printf__, 2, 3)));
+void   wwprintf(struct ww *, const char *, ...) __printflike(2, 3);
 void   wwputc(char, struct ww *);
 void   wwputs(const char *, struct ww *);
 void   wwredraw(void);
@@ -377,7 +376,7 @@ void        wwsuspend(void);
 void   wwunframe(struct ww *);
 void   wwupdate1(int, int);
 int    wwvisible(struct ww *);
-void   wwvprintf(struct ww *, const char *, va_list);
+void   wwvprintf(struct ww *, const char *, va_list) __printflike(2, 0);
 int    wwwrite(struct ww *, const char *, int);
 #ifdef TERMINFO
 int    wwterminfoinit(void);
index fdff57f..c41b548 100644 (file)
@@ -184,11 +184,7 @@ extern FILE                *atmarp_log_file;
 extern int     atmarp_cfg_netif(char *);
 
 /* atmarp_log.c */
-#if __STDC__
-extern void    atmarp_log(const int, const char *, ...);
-#else
-extern void    atmarp_log(int, char *, va_alist);
-#endif
+extern void    atmarp_log(const int, const char *, ...) __printflike(2, 3);
 extern void    atmarp_mem_err(char *);
 
 /* atmarp_scsp.c */
index 8e3708c..7b8b081 100644 (file)
@@ -96,8 +96,7 @@ scsp_config(char *cfn)
         */
        cfg_file = fopen(cfn, "r");
        if (!cfg_file) {
-               scsp_log(LOG_ERR, "can't open config file %s",
-                               (void *)cfn);
+               scsp_log(LOG_ERR, "can't open config file %s", cfn);
                exit(1);
        }
 
@@ -811,8 +810,7 @@ set_intf(char *netif)
         */
        rc = verify_nif_name(netif);
        if (rc == 0) {
-               parse_error("%s is not a valid network interface",
-                               (void *)netif);
+               parse_error("%s is not a valid network interface", netif);
                rc = 1;
                goto set_intf_done;
        } else if (rc < 0) {
@@ -963,8 +961,7 @@ start_server(char *name)
                /*
                 * Log the fact that we're updating the entry
                 */
-               scsp_log(LOG_INFO, "updating server entry for %s",
-                               (void *)name);
+               scsp_log(LOG_INFO, "updating server entry for %s", name);
 
                /*
                 * Free the existing cache
index 0498927..af885fe 100644 (file)
@@ -371,22 +371,12 @@ log_spec: /* Nothing */
 %%
 
 void
-#if __STDC__
 parse_error(const char *fmt, ...)
-#else
-parse_error(fmt, va_alist)
-       char    *fmt;
-       va_dcl
-#endif
 {
        va_list ap;
        char    buff[256];
 
-#if __STDC__
        va_start(ap, fmt);
-#else
-       va_start(ap);
-#endif
 
        vsprintf(buff, fmt, ap);
        scsp_log(LOG_ERR, "%s: Config file error at line %d: %s\n",
index f4463d4..14a6b0a 100644 (file)
@@ -208,8 +208,8 @@ scsp_trace_msg(Scsp_dcs *dcsp, Scsp_msg *msg, int dir)
         * Write the message to the trace file, if it's open
         */
        if (scsp_trace_file) {
-               scsp_trace("SCSP message at 0x%x %s %s\n",
-                               (u_long)msg,
+               scsp_trace("SCSP message at %p %s %s\n",
+                               msg,
                                (dir ? "received from" : "sent to"),
                                format_ip_addr(&addr));
                print_scsp_msg(scsp_trace_file, msg);
index 1a72973..903c784 100644 (file)
@@ -360,11 +360,7 @@ extern int set_log_file(char *);
 extern int     yylex(void);
 
 /* scsp_config_parse.y */
-#if __STDC__
-extern void    parse_error(const char *, ...);
-#else
-extern void    parse_error(char *, va_alist);
-#endif
+extern void    parse_error(const char *, ...) __printflike(1, 2);
 
 /* scsp_hfsm.c */
 extern int     scsp_hfsm(Scsp_dcs *, int, Scsp_msg *);
@@ -378,13 +374,8 @@ extern void        scsp_free_msg(Scsp_msg *);
 extern Scsp_msg        *scsp_parse_msg(char *, int);
 
 /* scsp_log.c */
-#if __STDC__
-extern void    scsp_log(const int, const char *, ...);
-extern void    scsp_trace(const char *, ...);
-#else
-extern void    scsp_log(int, char *, va_alist);
-extern void    scsp_trace(const char *, va_alist);
-#endif
+extern void    scsp_log(const int, const char *, ...) __printflike(2, 3);
+extern void    scsp_trace(const char *, ...) __printflike(1, 2);
 extern void    scsp_open_trace();
 extern void    scsp_trace_msg(Scsp_dcs *, Scsp_msg *, int);
 extern void    scsp_mem_err(char *);
index 5d43ada..91a4646 100644 (file)
@@ -118,7 +118,7 @@ static void seekx(int, off_t);
 static unsigned int optfmt(const char *);
 static uint32_t optaddr(const char *);
 static int optpage(const char *, int);
-static void Warn(const char *, const char *, ...);
+static void Warn(const char *, const char *, ...) __printflike(2, 3);
 static void usage(void);
 
 /*
index 8a5f4ad..98a14d6 100644 (file)
@@ -93,10 +93,11 @@ double tv_delta_double(struct timeval *tv1, struct timeval *tv2);
 void tv_to_ts(struct timeval *tv, struct timespec *ts);
 void ts_to_tv(struct timespec *ts, struct timeval *tv);
 
-void logerr(const char *ctl, ...);
-void logerrstr(const char *ctl, ...);
-void _logdebug(int level, const char *ctl, ...);
-void _logdebuginfo(server_info_t info, int level, const char *ctl, ...);
+void logerr(const char *ctl, ...) __printflike(1, 2);
+void logerrstr(const char *ctl, ...) __printflike(1, 2);
+void _logdebug(int level, const char *ctl, ...) __printflike(2, 3);
+void _logdebuginfo(server_info_t info, int level, const char *ctl, ...)
+         __printflike(3, 4);
 
 void sysntp_getbasetime(struct timeval *tvp);
 int sysntp_offset_correction_is_running(void);
index 2f75e57..5e0291b 100644 (file)
@@ -36,7 +36,8 @@
 
 #include "defs.h"
 
-static void vlogline(int level, int newline, const char *ctl, va_list va);
+static void vlogline(int level, int newline, const char *ctl, va_list va)
+               __printflike(3, 0);
 
 int log_stderr = 1;
 
index 337d895..6e01710 100644 (file)
@@ -54,7 +54,8 @@ udp_socket(const char *target, int port, struct sockaddr *sam,
     error = getaddrinfo(target, servname, &hints, &res0);
     if (error) {
        if (dns_error_policy == LOG_DNS_ERROR)
-           logerr("getaddrinfo (%s) init error", target, gai_strerror(error));
+           logerr("getaddrinfo (%s) init error: %s", target,
+               gai_strerror(error));
         return(-1);
     }
 
index 2381ea0..a6ccf35 100644 (file)
@@ -103,7 +103,7 @@ int getline(char *, size_t *);
 void   handle_connection(const int);
 void   handle_signal(int);
 struct session * init_session(void);
-void   logmsg(int, const char *, ...);
+void   logmsg(int, const char *, ...) __printflike(2, 3);
 u_int16_t parse_port(int);
 u_int16_t pick_proxy_port(void);
 void   proxy_reply(int, struct sockaddr *, u_int16_t);
index 26eec17..eeb964f 100644 (file)
@@ -354,7 +354,7 @@ int                 path_changed(struct resp_buf *base,
 void                   check_vif_state(void);
 
 int                    main(int argc, char **argv);
-void                   dolog(int, int, char *, ...);
+void                   dolog(int, int, char *, ...) __printflike(3, 4);
 static void            usage(void);
 
 
index 870c434..8e530af 100644 (file)
@@ -70,7 +70,7 @@ static mode_t mode;
 static u_long flags = 0xffffffff;
 
 static int     dsort(const FTSENT * const *, const FTSENT * const *);
-static void    output(int, int *, const char *, ...);
+static void    output(int, int *, const char *, ...) __printflike(3, 4);
 static int     statd(FTS *, FTSENT *, uid_t *, gid_t *, mode_t *,
                           u_long *);
 static void    statf(int, FTSENT *);
@@ -194,7 +194,8 @@ statf(int indent, FTSENT *p)
        if (keys & F_NLINK && p->fts_statp->st_nlink != 1)
                output(indent, &offset, "nlink=%u", p->fts_statp->st_nlink);
        if (keys & F_SIZE)
-               output(indent, &offset, "size=%qd", p->fts_statp->st_size);
+               output(indent, &offset, "size=%jd",
+                   (uintmax_t)p->fts_statp->st_size);
        if (keys & F_TIME)
                output(indent, &offset, "time=%ld.%ld",
                    p->fts_statp->st_mtimespec.tv_sec,
index 484d7a3..b39d137 100644 (file)
@@ -37,7 +37,7 @@
 #define LOG_ERR_2(sender, err, ...) __log_err(2, sender, err, ##__VA_ARGS__)
 #define LOG_ERR_3(sender, err, ...) __log_err(3, sender, err, ##__VA_ARGS__)
 
-extern void __log_msg(int, const char *, const char *, ...);
-extern void __log_err(int, const char *, const char *, ...);
+extern void __log_msg(int, const char *, const char *, ...) __printflike(3, 4);
+extern void __log_err(int, const char *, const char *, ...) __printflike(3, 4);
 
 #endif
index 7d64427..bda6eca 100644 (file)
@@ -89,7 +89,7 @@ int            popfile(void);
 int             check_file_secrecy(int, const char *);
 int             yyparse(void);
 int             yylex(void);
-int             yyerror(const char *, ...);
+int             yyerror(const char *, ...) __printflike(1, 2);
 int             kw_cmp(const void *, const void *);
 int             lookup(char *);
 int             lgetc(int);
@@ -563,7 +563,7 @@ optimizer   : string        {
                        else if (!strcmp($1, "profile"))
                                $$ = PF_OPTIMIZE_BASIC | PF_OPTIMIZE_PROFILE;
                        else {
-                               yyerror("unknown ruleset-optimization %s", $$);
+                               yyerror("unknown ruleset-optimization %s", $1);
                                YYERROR;
                        }
                }
@@ -609,7 +609,7 @@ option              : SET OPTIMIZATION STRING               {
                                YYERROR;
                        }
                        if (pfctl_set_hostid(pf, $3) != 0) {
-                               yyerror("error setting hostid %08x", $3);
+                               yyerror("error setting hostid %08" PRId64, $3);
                                YYERROR;
                        }
                }
@@ -1123,7 +1123,7 @@ scrub_opt : NODF  {
                                YYERROR;
                        }
                        if ($2 < 0 || $2 > 255) {
-                               yyerror("illegal min-ttl value %d", $2);
+                               yyerror("illegal min-ttl value %" PRId64, $2);
                                YYERROR;
                        }
                        scrub_opts.marker |= SOM_MINTTL;
@@ -1135,7 +1135,7 @@ scrub_opt : NODF  {
                                YYERROR;
                        }
                        if ($2 < 0 || $2 > 65535) {
-                               yyerror("illegal max-mss value %d", $2);
+                               yyerror("illegal max-mss value %" PRId64, $2);
                                YYERROR;
                        }
                        scrub_opts.marker |= SOM_MAXMSS;
@@ -1884,7 +1884,7 @@ qassign_item      : STRING                        {
                        if (strlcpy($$->queue, $1, sizeof($$->queue)) >=
                            sizeof($$->queue)) {
                                yyerror("queue name '%s' too long (max "
-                                   "%d chars)", $1, sizeof($$->queue)-1);
+                                   "%zd chars)", $1, sizeof($$->queue)-1);
                                free($1);
                                free($$);
                                YYERROR;
@@ -2268,7 +2268,7 @@ pfrule            : action dir logquick interface route af proto fromto
                                if (strlcpy(r.qname, $9.queues.qname,
                                    sizeof(r.qname)) >= sizeof(r.qname)) {
                                        yyerror("rule qname too long (max "
-                                           "%d chars)", sizeof(r.qname)-1);
+                                           "%zd chars)", sizeof(r.qname)-1);
                                        YYERROR;
                                }
                                free($9.queues.qname);
@@ -2277,7 +2277,7 @@ pfrule            : action dir logquick interface route af proto fromto
                                if (strlcpy(r.pqname, $9.queues.pqname,
                                    sizeof(r.pqname)) >= sizeof(r.pqname)) {
                                        yyerror("rule pqname too long (max "
-                                           "%d chars)", sizeof(r.pqname)-1);
+                                           "%zd chars)", sizeof(r.pqname)-1);
                                        YYERROR;
                                }
                                free($9.queues.pqname);
@@ -2480,7 +2480,7 @@ blockspec : /* empty */           {
                }
                | RETURNRST '(' TTL NUMBER ')'  {
                        if ($4 < 0 || $4 > 255) {
-                               yyerror("illegal ttl value %d", $4);
+                               yyerror("illegal ttl value %" PRId64, $4);
                                YYERROR;
                        }
                        $$.b2 = PFRULE_RETURNRST;
@@ -2530,7 +2530,7 @@ reticmpspec       : STRING                        {
                        u_int8_t                icmptype;
 
                        if ($1 < 0 || $1 > 255) {
-                               yyerror("invalid icmp code %lu", $1);
+                               yyerror("invalid icmp code %" PRId64, $1);
                                YYERROR;
                        }
                        icmptype = returnicmpdefault >> 8;
@@ -2549,7 +2549,7 @@ reticmp6spec      : STRING                        {
                        u_int8_t                icmptype;
 
                        if ($1 < 0 || $1 > 255) {
-                               yyerror("invalid icmp code %lu", $1);
+                               yyerror("invalid icmp code %" PRId64, $1);
                                YYERROR;
                        }
                        icmptype = returnicmp6default >> 8;
@@ -2944,7 +2944,7 @@ host              : STRING                        {
                        if (strlcpy($$->addr.v.rtlabelname, $2,
                            sizeof($$->addr.v.rtlabelname)) >=
                            sizeof($$->addr.v.rtlabelname)) {
-                               yyerror("route label too long, max %u chars",
+                               yyerror("route label too long, max %zd chars",
                                    sizeof($$->addr.v.rtlabelname) - 1);
                                free($2);
                                free($$);
@@ -3170,7 +3170,7 @@ uid               : STRING                        {
                }
                | NUMBER                        {
                        if ($1 < 0 || $1 >= UID_MAX) {
-                               yyerror("illegal uid value %lu", $1);
+                               yyerror("illegal uid value %" PRId64, $1);
                                YYERROR;
                        }
                        $$ = $1;
@@ -3248,7 +3248,7 @@ gid               : STRING                        {
                }
                | NUMBER                        {
                        if ($1 < 0 || $1 >= GID_MAX) {
-                               yyerror("illegal gid value %lu", $1);
+                               yyerror("illegal gid value %" PRId64, $1);
                                YYERROR;
                        }
                        $$ = $1;
@@ -3326,7 +3326,7 @@ icmp_item : icmptype              {
                }
                | icmptype CODE NUMBER  {
                        if ($3 < 0 || $3 > 255) {
-                               yyerror("illegal icmp-code %lu", $3);
+                               yyerror("illegal icmp-code %" PRId64, $3);
                                YYERROR;
                        }
                        $$ = calloc(1, sizeof(struct node_icmp));
@@ -3371,7 +3371,7 @@ icmp6_item        : icmp6type             {
                }
                | icmp6type CODE NUMBER {
                        if ($3 < 0 || $3 > 255) {
-                               yyerror("illegal icmp-code %lu", $3);
+                               yyerror("illegal icmp-code %" PRId64, $3);
                                YYERROR;
                        }
                        $$ = calloc(1, sizeof(struct node_icmp));
@@ -3398,7 +3398,7 @@ icmptype  : STRING                        {
                }
                | NUMBER                        {
                        if ($1 < 0 || $1 > 255) {
-                               yyerror("illegal icmp-type %lu", $1);
+                               yyerror("illegal icmp-type %" PRId64, $1);
                                YYERROR;
                        }
                        $$ = $1 + 1;
@@ -3419,7 +3419,7 @@ icmp6type : STRING                        {
                }
                | NUMBER                        {
                        if ($1 < 0 || $1 > 255) {
-                               yyerror("illegal icmp6-type %lu", $1);
+                               yyerror("illegal icmp6-type %" PRId64, $1);
                                YYERROR;
                        }
                        $$ = $1 + 1;
@@ -3447,7 +3447,7 @@ tos       : STRING                        {
                | NUMBER                        {
                        $$ = $1;
                        if (!$$ || $$ > 255) {
-                               yyerror("illegal tos value %s", $1);
+                               yyerror("illegal tos value %" PRId64, $1);
                                YYERROR;
                        }
                }
@@ -4343,7 +4343,7 @@ limit_spec        : STRING NUMBER
                                YYERROR;
                        }
                        if (pfctl_set_limit(pf, $1, $2) != 0) {
-                               yyerror("unable to set limit %s %u", $1, $2);
+                               yyerror("unable to set limit %s %" PRId64, $1, $2);
                                free($1);
                                YYERROR;
                        }
@@ -6014,7 +6014,7 @@ rule_label(struct pf_rule *r, char *s)
        if (s) {
                if (strlcpy(r->label, s, sizeof(r->label)) >=
                    sizeof(r->label)) {
-                       yyerror("rule label too long (max %d chars)",
+                       yyerror("rule label too long (max %zd chars)",
                            sizeof(r->label)-1);
                        return (-1);
                }
index e95f1f6..52821ed 100644 (file)
@@ -61,7 +61,7 @@ static void   print_addrx(const struct pfr_addr *, const struct pfr_addr *,
                            int);
 static void    print_astats(const struct pfr_astats *, int);
 static void    radix_perror(void);
-static void    xprintf(int, const char *, ...);
+static void    xprintf(int, const char *, ...) __printflike(2, 3);
 static void    print_iface(const struct pfi_kif *, int);
 
 static const char      *stats_text[PFR_DIR_MAX][PFR_OP_TABLE_MAX] = {
index b722232..86a43af 100644 (file)
@@ -524,7 +524,7 @@ dump_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *sp)
        size_t len = sizeof(*h) + h->caplen;
 
        if (len < sizeof(*h) || h->caplen > (size_t)cur_snaplen) {
-               logmsg(LOG_NOTICE, "invalid size %u (%u/%u), packet dropped",
+               logmsg(LOG_NOTICE, "invalid size %zd (%u/%u), packet dropped",
                       len, cur_snaplen, snaplen);
                packets_dropped++;
                return;
@@ -727,7 +727,7 @@ main(int argc, char **argv)
                logmsg(LOG_WARNING, "Reading stats: %s", pcap_geterr(hpcap));
        else
                logmsg(LOG_NOTICE,
-                   "%u packets received, %u/%u dropped (kernel/pflogd)",
+                   "%u packets received, %u/%ld dropped (kernel/pflogd)",
                    pstat.ps_recv, pstat.ps_drop, packets_dropped);
 
        pcap_close(hpcap);
index 1b504a4..f9ec9ad 100644 (file)
@@ -31,7 +31,7 @@
 #define PFLOGD_MAXSNAPLEN      INT_MAX
 #define PFLOGD_BUFSIZE         65536   /* buffer size for incoming packets */
 
-void  logmsg(int priority, const char *message, ...);
+void  logmsg(int priority, const char *message, ...) __printflike(2, 3);
 
 /* Privilege separation */
 int    priv_init(void);
index a53d9b2..5c82966 100644 (file)
 
 void   log_open        (char const *prog, int32_t log2stderr);
 void   log_close       (void);
-void   log_emerg       (char const *message, ...);
-void   log_alert       (char const *message, ...);
-void   log_crit        (char const *message, ...);
-void   log_err         (char const *message, ...);
-void   log_warning     (char const *message, ...);
-void   log_notice      (char const *message, ...);
-void   log_info        (char const *message, ...);
-void   log_debug       (char const *message, ...);
+void   log_emerg       (char const *message, ...) __printflike(1, 2);
+void   log_alert       (char const *message, ...) __printflike(1, 2);
+void   log_crit        (char const *message, ...) __printflike(1, 2);
+void   log_err         (char const *message, ...) __printflike(1, 2);
+void   log_warning     (char const *message, ...) __printflike(1, 2);
+void   log_notice      (char const *message, ...) __printflike(1, 2);
+void   log_info        (char const *message, ...) __printflike(1, 2);
+void   log_debug       (char const *message, ...) __printflike(1, 2);
 
 #endif /* ndef _LOG_H_ */