Closed Bug 212978 Opened 21 years ago Closed 20 years ago

specifiying printing range outside the actual page range crashes browser

Categories

(Core Graveyard :: Printing: Xprint, defect)

Sun
Solaris
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: Robert.Offinger, Assigned: roland.mainz)

References

()

Details

(Whiteboard: [Xprint server bug])

User-Agent:       Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.4) Gecko/20030701
Build Identifier: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.4) Gecko/20030701

If I specify a print range which is outside the actual range of the document,
e.g.,  if I specify print range from 4 to 4 in the print-dialog for the above
web page and then press "print" it crashes the browser (Mozilla 1.4, but also
Firebird [Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.5a) Gecko/20030716
Mozilla Firebird/0.6]) with the error message "Gdk-ERROR **: X connection to
:11.0 broken (explicit kill or server shutdown)."

Reproducible: Always

Steps to Reproduce:
1.load web page
2.choose "print..." and specify range outside the actual range
3.press "print"

Actual Results:  
browser crashes with described Gdk-error message

Expected Results:  
I know it is stupid to specify a page outside the actual range for printing but
it should not crash and show an error message instead.
Confirming bug...

the issue is quote simple - we start a print job, print no page and then finish
the print job...
-- snip --
WARNING: empty damage rect: update caller to avoid fcn call overhead, file
../../../../../src/mozilla/layout/html/base/src/nsFrame.cpp, line 2573
XpuStartJobToSpooler(mPDisplay)
XpuWaitForPrintNotify(mPDisplay, mXpEventBase, XPStartJobNotify)
XpuWaitForPrintNotify: 1=IsXpNotifyEvent(70,0)
WEBSHELL- = 3
XpEndJob(mPDisplay)
XpuWaitForPrintNotify(mPDisplay, mXpEventBase, XPEndJobNotify)
Gdk-ERROR **: X connection to castor:0.1 broken (explicit kill or server
shutdown).
-- snip --

... and the Xprint server "honors" that with the following crash:

-- snip --
signal SEGV (no mapping at the fault address) in PsOut_EndFile at line 634 in
file "psout.c"
  634     if (!self->isRaw) {
(dbx) where
=>[1] PsOut_EndFile(self = (nil), closeFile = 0), line 634 in "psout.c"
  [2] PsEndJob(pCon = 0x97a0d8, cancel = 0), line 218 in "PsPrint.c"
  [3] ProcXpEndJob(client = 0x978d20), line 1644 in "xprint.c"
  [4] SProcXpEndJob(client = 0x978d20), line 2669 in "xprint.c"
  [5] ProcXpSwappedDispatch(client = 0x978d20), line 544 in "xprint.c"
  [6] Dispatch(), line 305 in "dispatch.c"
  [7] main(argc = 8, argv = 0xffbee47c), line 364 in "main.c"
(dbx) print self
self = (nil)
-- snip --
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: SunOS → Solaris
Whiteboard: [Xprint server bug]
Taking myself... I'll file a bug at xprint.mozdev.org to fix that in the Xprint
server side...
Assignee: katakai → Roland.Mainz
Filed http://xprint.mozdev.org/bugs/show_bug.cgi?id=4196 ("Printing no pages
between XpStartJob() and XpEndJob() results in a crash") at xprint.mozdev.org
...
QA Contact: Roland.Mainz → katakai
Note that the mozdev bug is resolved fixed.
There is a new Xprint server version out (009, still "gamma" but should do the
job) ... marking bug as FIXED.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.