Apply by doing:
       cd /usr/src
       patch -p0 < 023_lprm.patch

And then rebuild and install lprm:
       cd usr.sbin/lpr
       make obj
       make depend && make && make install

Index: usr.sbin/lpr/common_source/rmjob.c
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/common_source/rmjob.c,v
retrieving revision 1.12
diff -u -r1.12 rmjob.c
--- usr.sbin/lpr/common_source/rmjob.c  16 Feb 2002 21:28:03 -0000      1.12
+++ usr.sbin/lpr/common_source/rmjob.c  5 Mar 2003 00:54:55 -0000
@@ -322,6 +322,7 @@
{
       char *cp;
       int i, rem;
+       size_t n;
       char buf[BUFSIZ];

       if (!remote)
@@ -333,18 +334,26 @@
        */
       fflush(stdout);

-       (void)snprintf(buf, sizeof(buf)-2, "\5%s %s", RP, all ? "-all" : person);
-       cp = buf + strlen(buf);
-       for (i = 0; i < users && cp-buf+1+strlen(user[i]) < sizeof buf - 2; i++) {
-               cp += strlen(cp);
+       /* the trailing space will be replaced with a newline later */
+       n = snprintf(buf, sizeof(buf), "\5%s %s ", RP, all ? "-all" : person);
+       if (n == -1 || n >= sizeof(buf))
+               goto bad;
+       cp = buf + n;
+       for (i = 0; i < users; i++) {
+               n = strlcpy(cp, user[i], sizeof(buf) - (cp - buf + 1));
+               if (n >= sizeof(buf) - (cp - buf + 1))
+                       goto bad;
+               cp += n;
               *cp++ = ' ';
-               strcpy(cp, user[i]);
       }
-       for (i = 0; i < requests && cp-buf+10 < sizeof(buf) - 2; i++) {
-               cp += strlen(cp);
-               (void) sprintf(cp, " %d", requ[i]);
+       *cp = '\0';
+       for (i = 0; i < requests; i++) {
+               n = snprintf(cp, sizeof(buf) - (cp - buf), "%d ", requ[i]);
+               if (n == -1 || n >= sizeof(buf) - (cp - buf))
+                       goto bad;
+               cp += n;
       }
-       strcat(cp, "\n");
+       cp[-1] = '\n';          /* replace space with newline, leave the NUL */
       rem = getport(RM, 0);
       if (rem < 0) {
               if (from != host)
@@ -358,6 +367,10 @@
                       (void) fwrite(buf, 1, i, stdout);
               (void) close(rem);
       }
+       return;
+bad:
+       printf("remote buffer too large\n");
+       return;
}

/*