Author: marius
Date: Thu Jan 31 00:02:36 2013
New Revision: 246139
URL: http://svnweb.freebsd.org/changeset/base/246139

Log:
  Mark tftp_log() as __printflike() (which would have caught the bug
  fixed in r246106) and deal with the fallout.
  
  MFC after:    2 weeks

Modified:
  head/libexec/tftpd/tftp-io.c
  head/libexec/tftpd/tftp-options.c
  head/libexec/tftpd/tftp-utils.h
  head/libexec/tftpd/tftpd.c

Modified: head/libexec/tftpd/tftp-io.c
==============================================================================
--- head/libexec/tftpd/tftp-io.c        Wed Jan 30 23:59:27 2013        
(r246138)
+++ head/libexec/tftpd/tftp-io.c        Thu Jan 31 00:02:36 2013        
(r246139)
@@ -106,13 +106,13 @@ send_packet(int peer, uint16_t block, ch
        for (i = 0; i < 12 ; i++) {
                DROPPACKETn("send_packet", 0);
 
-               if (sendto(peer, pkt, size, 0,
-                       (struct sockaddr *)&peer_sock, peer_sock.ss_len)
-                       == size) {
+               if (sendto(peer, pkt, size, 0, (struct sockaddr *)&peer_sock,
+                   peer_sock.ss_len) == size) {
                        if (i)
                                tftp_log(LOG_ERR,
                                    "%s block %d, attempt %d successful",
-                                   block, i);
+                                   packettype(ntohs(((struct tftphdr *)
+                                   (pkt))->th_opcode)), block, i);
                        return (0);
                }
                tftp_log(LOG_ERR,

Modified: head/libexec/tftpd/tftp-options.c
==============================================================================
--- head/libexec/tftpd/tftp-options.c   Wed Jan 30 23:59:27 2013        
(r246138)
+++ head/libexec/tftpd/tftp-options.c   Thu Jan 31 00:02:36 2013        
(r246139)
@@ -99,16 +99,17 @@ option_tsize(int peer __unused, struct t
 int
 option_timeout(int peer)
 {
+       int to;
 
        if (options[OPT_TIMEOUT].o_request == NULL)
                return (0);
 
-       int to = atoi(options[OPT_TIMEOUT].o_request);
+       to = atoi(options[OPT_TIMEOUT].o_request);
        if (to < TIMEOUT_MIN || to > TIMEOUT_MAX) {
                tftp_log(acting_as_client ? LOG_ERR : LOG_WARNING,
                    "Received bad value for timeout. "
-                   "Should be between %d and %d, received %s",
-                   TIMEOUT_MIN, TIMEOUT_MAX);
+                   "Should be between %d and %d, received %d",
+                   TIMEOUT_MIN, TIMEOUT_MAX, to);
                send_error(peer, EBADOP);
                if (acting_as_client)
                        return (1);
@@ -195,14 +196,14 @@ option_blksize(int peer)
                        tftp_log(LOG_ERR,
                            "Invalid blocksize (%d bytes), "
                            "net.inet.udp.maxdgram sysctl limits it to "
-                           "%d bytes.\n", size, maxdgram);
+                           "%ld bytes.\n", size, maxdgram);
                        send_error(peer, EBADOP);
                        return (1);
                } else {
                        tftp_log(LOG_WARNING,
                            "Invalid blocksize (%d bytes), "
                            "net.inet.udp.maxdgram sysctl limits it to "
-                           "%d bytes.\n", size, maxdgram);
+                           "%ld bytes.\n", size, maxdgram);
                        size = maxdgram;
                        /* No reason to return */
                }
@@ -257,7 +258,7 @@ option_blksize2(int peer __unused)
                }
                tftp_log(LOG_INFO,
                    "Invalid blocksize2 (%d bytes), net.inet.udp.maxdgram "
-                   "sysctl limits it to %d bytes.\n", size, maxdgram);
+                   "sysctl limits it to %ld bytes.\n", size, maxdgram);
                size = sizes[i];
                /* No need to return */
        }

Modified: head/libexec/tftpd/tftp-utils.h
==============================================================================
--- head/libexec/tftpd/tftp-utils.h     Wed Jan 30 23:59:27 2013        
(r246138)
+++ head/libexec/tftpd/tftp-utils.h     Thu Jan 31 00:02:36 2013        
(r246139)
@@ -106,7 +106,7 @@ const char *debug_show(int d);
 extern int tftp_logtostdout;
 void   tftp_openlog(const char *ident, int logopt, int facility);
 void   tftp_closelog(void);
-void   tftp_log(int priority, const char *message, ...);
+void   tftp_log(int priority, const char *message, ...) __printflike(2, 3);
 
 /*
  * Performance figures

Modified: head/libexec/tftpd/tftpd.c
==============================================================================
--- head/libexec/tftpd/tftpd.c  Wed Jan 30 23:59:27 2013        (r246138)
+++ head/libexec/tftpd/tftpd.c  Thu Jan 31 00:02:36 2013        (r246139)
@@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
 #include <fcntl.h>
 #include <netdb.h>
 #include <pwd.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -799,8 +800,8 @@ tftp_xmitfile(int peer, const char *mode
        tftp_send(peer, &block, &ts);
        read_close();
        if (debug&DEBUG_SIMPLE)
-               tftp_log(LOG_INFO, "Sent %d bytes in %d seconds",
-                   ts.amount, time(NULL) - now);
+               tftp_log(LOG_INFO, "Sent %jd bytes in %jd seconds",
+                   (intmax_t)ts.amount, (intmax_t)time(NULL) - now);
 }
 
 static void
@@ -832,8 +833,8 @@ tftp_recvfile(int peer, const char *mode
                f = now2.tv_sec - now1.tv_sec +
                    (now2.tv_usec - now1.tv_usec) / 100000.0;
                tftp_log(LOG_INFO,
-                   "Download of %d bytes in %d blocks completed after %0.1f 
seconds\n",
-                   ts.amount, block, f);
+                   "Download of %jd bytes in %d blocks completed after %0.1f 
seconds\n",
+                   (intmax_t)ts.amount, block, f);
        }
 
        return;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to