Comment 10 for bug 291318

gallen53 (gary-a-allen) wrote :

I'm having problems with this bug as well and have found that the PostScript-3 --> PostScript-2 workaround also has problems.

I'm running 32-bit Ubuntu under kernel 2.6.27-9-generic. My laser printer is an HP-8150N.
If I attempt to print a 14990 byte text file of C source code (call it "foo.c") with the following command:

lp foo.c

The printer output has specific characters replaced with spurious characters, e.g. the "1" is replaced with a "(". If I reduce the size of "foo.c" to a much smaller file then the fault goes away (classic buffer overflow error). If I invoke the PostScript-3 --> PostScript-2 workaround that was previously suggested then the HP-8150N triggers an error fault claiming Memory Overflow. This is a remarkable error considering my HP-8150N has 40 MBytes of memory but the original file is only 14990 bytes big. This same memory overflow error occurs if I set the HP-8150N to use generic PostScript. If I invoke the following command:

gedit foo.c

and attempt to print the file directly from gedit then the output is again corrupted with different character swaps (not surprising given it's probably a buffer overflow bug). If I command gedit to issue a PostScript file (, I can get an error-free printer output on the HP-8150N by going root and issuing the following command:

cat > /dev/lp0

If I configure a new printer and define it to be a LaserJet-III and make the LaserJet-III the default printer then the fault goes away, e.g. the following command works assuming a LaserJet-III protocol:

lp foo.c

However the LaserJet-III is an ancient design and most of the HP-8150N's capability is lost under that setting.

Is this driver code for the HP-8150N executed on my computer or is it sent to the HP-8150N to run on its processor? If so the fault might also be coupled with a firmware issue on the HP-8150N. Has anyone alerted HP to this problem?