]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/misc/tcpwrapper.c
2001-01-20 Chip Salzenberg <chip@valinux.com>
[nfs-utils.git] / support / misc / tcpwrapper.c
index 498a8290ec3f20057dbaa7b1d599fd11c9df869b..8743a7b420ca7c9a172932b13574060e7b8a4cf8 100644 (file)
@@ -221,14 +221,16 @@ u_long  prognum;
 char   *text;
 {
     char   *procname;
-    char    procbuf[4 * sizeof(u_long)];
+    char    procbuf[16 + 4 * sizeof(u_long)];
     char   *progname;
-    char    progbuf[4 * sizeof(u_long)];
+    char    progbuf[16 + 4 * sizeof(u_long)];
     struct rpcent *rpc;
 
     /*
      * Fork off a process or the portmap daemon might hang while
      * getrpcbynumber() or syslog() does its thing.
+     *
+     * Don't forget to wait for the children, too...
      */
 
     if (fork() == 0) {
@@ -240,16 +242,18 @@ char   *text;
        } else if ((rpc = getrpcbynumber((int) prognum))) {
            progname = rpc->r_name;
        } else {
-           sprintf(progname = progbuf, "%lu", prognum);
+           snprintf(progname = progbuf, sizeof (progbuf),
+                    "prog (%lu)", prognum);
        }
 
        /* Try to map procedure number to name. */
 
-       sprintf(procname = procbuf, "%lu", (u_long) procnum);
+       snprintf(procname = procbuf, sizeof (procbuf),
+                "proc (%lu)", (u_long) procnum);
 
        /* Write syslog record. */
 
-       syslog(severity, "connect from %s to %s(%s)%s",
+       syslog(severity, "connect from %s to %s in %s%s",
               inet_ntoa(addr->sin_addr), procname, progname, text);
        exit(0);
     }