Prerequisites: 014_lpd.patch Apply by doing: cd /usr/src patch -p0 < 017_lpd.patch And then rebuild and install lpd: cd usr.sbin/lpr/lpd make obj make depend make make install If you are running lpd you will now need to kill and restart it. OpenBSD does not start lpd in the default install. Index: usr.sbin/lpr/lpd/recvjob.c =================================================================== RCS file: /cvs/src/usr.sbin/lpr/lpd/recvjob.c,v retrieving revision 1.13 diff -u -r1.13 recvjob.c --- usr.sbin/lpr/lpd/recvjob.c 7 Feb 2001 20:40:46 -0000 1.13 +++ usr.sbin/lpr/lpd/recvjob.c 28 Nov 2001 18:57:29 -0000 @@ -180,12 +180,11 @@ */ strncpy(cp + 6, from, sizeof(line) + line - cp - 7); line[sizeof(line) -1 ] = '\0'; + if (strchr(cp, '/')) + frecverr("readjob: %s: illegal path name", cp); strncpy(tfname, cp, sizeof tfname-1); tfname[sizeof tfname-1] = '\0'; tfname[0] = 't'; - if (strchr(tfname, '/')) - frecverr("readjob: %s: illegal path name", - tfname); if (!chksize(size)) { (void) write(1, "\2", 1); continue; @@ -207,15 +206,14 @@ size = size * 10 + (*cp++ - '0'); if (*cp++ != ' ') break; + if (strchr(cp, '/')) + frecverr("readjob: %s: illegal path name", cp); if (!chksize(size)) { (void) write(1, "\2", 1); continue; } (void) strncpy(dfname, cp, sizeof dfname-1); dfname[sizeof dfname-1] = '\0'; - if (strchr(dfname, '/')) - frecverr("readjob: %s: illegal path name", - dfname); (void) readfile(dfname, size); continue; }