X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fmisc%2Ftcpwrapper.c;h=8743a7b420ca7c9a172932b13574060e7b8a4cf8;hp=498a8290ec3f20057dbaa7b1d599fd11c9df869b;hb=b5cb3f2f03186c514af01b835296da084ae286d9;hpb=764e46f5c5fe1a6e376f4cd350424f33afc9e838 diff --git a/support/misc/tcpwrapper.c b/support/misc/tcpwrapper.c index 498a829..8743a7b 100644 --- a/support/misc/tcpwrapper.c +++ b/support/misc/tcpwrapper.c @@ -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); }