--- tcp_wrappers_7.6/tcpd.c.bug11881 +++ tcp_wrappers_7.6/tcpd.c @@ -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 +++ tcp_wrappers_7.6/eval.c @@ -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);