Apply by doing:
cd /usr/src
patch -p0 < 008_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.15
diff -u -r1.15 recvjob.c
--- usr.sbin/lpr/lpd/recvjob.c 30 Aug 2001 17:38:13 -0000 1.15
+++ usr.sbin/lpr/lpd/recvjob.c 28 Nov 2001 18:55:34 -0000
@@ -179,11 +179,10 @@
* returns
*/
strlcpy(cp + 6, from, sizeof(line) + line - cp - 6);
+ if (strchr(cp, '/'))
+ frecverr("readjob: %s: illegal path name", cp);
strlcpy(tfname, cp, sizeof tfname);
tfname[0] = 't';
- if (strchr(tfname, '/'))
- frecverr("readjob: %s: illegal path name",
- tfname);
if (!chksize(size)) {
(void) write(1, "\2", 1);
continue;
@@ -205,14 +204,13 @@
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) strlcpy(dfname, cp, sizeof dfname);
- if (strchr(dfname, '/'))
- frecverr("readjob: %s: illegal path name",
- dfname);
(void) readfile(dfname, size);
continue;
}