--- tcp_wrappers_7.6/tcpd.c.bug11881	Thu Jul 27 15:39:27 2000
+++ tcp_wrappers_7.6/tcpd.c	Thu Jul 27 15:41:54 2000
@@ -60,10 +60,10 @@
      */
 
     if (argv[0][0] == '/') {
-	strcpy(path, argv[0]);
+	strncpy(path, argv[0], sizeof(path));
 	argv[0] = strrchr(argv[0], '/') + 1;
     } else {
-	sprintf(path, "%s/%s", REAL_DAEMON_DIR, argv[0]);
+	snprintf(path, sizeof(path), "%s/%s", REAL_DAEMON_DIR, argv[0]);
     }
 
     /*
--- tcp_wrappers_7.6/eval.c.bug11881	Thu Jul 27 15:39:53 2000
+++ tcp_wrappers_7.6/eval.c	Thu Jul 27 15:40:51 2000
@@ -111,7 +111,7 @@
 	return (hostinfo);
 #endif
     if (STR_NE(eval_user(request), unknown)) {
-	sprintf(both, "%s@%s", request->user, hostinfo);
+	snprintf(both, sizeof(both), "%s@%s", request->user, hostinfo);
 	return (both);
     } else {
 	return (hostinfo);
@@ -128,7 +128,7 @@
     char   *daemon = eval_daemon(request);
 
     if (STR_NE(host, unknown)) {
-	sprintf(both, "%s@%s", daemon, host);
+	snprintf(both, sizeof(both), "%s@%s", daemon, host);
 	return (both);
     } else {
 	return (daemon);
