'lpr' dumps core when presented with unknown printer
# lpr -Pnosuchprinter
Segmentation fault
It looks like it is due to a questionable code in lpr.c:
fatal("%s: unknown printer", s);
where 'fatal()' is defined as follows:
fatal(msg, a1, a2, a3)
char *msg;
{
printf("%s: ", name);
printf(msg, a1, a2, a3);
putchar('\n');
exit(1);
}
The pointers are implicitly declared as integers, and are truncated.
The proper solution is to define fatal() using varargs; a simple
patch is to declare a1 a2 a3 as void *:
fatal(msg, a1, a2, a3)
char *msg;
+ void *a1, *a2, *a3;
{
There are 3 places where such unsavory practices take place in lpr-0.12-1:
common_source/common.c:338:/*VARARGS1*/
lpd/printjob.c:1291:/*VARARGS1*/
lpr/lpr.c:751:/*VARARGS1*/
przemek klosowski <przemek@nist.gov> (301) 975-6249
Reactor Division (bldg. 235), E111
National Institute of Standards and Technology
Gaithersburg, MD 20899, USA
-- To unsubscribe: send e-mail to axp-list-request@redhat.com with 'unsubscribe' as the subject. Do not send it to axp-list@redhat.com
Copyright © 1995-1997 Red Hat Software. Legal notices