Closed Bug 329299 Opened 17 years ago Closed 16 years ago

Crash printing web page on IBM drivers (Infoprint/Lexmark)

Categories

(Core :: Printing: Output, defect)

1.8 Branch
x86
Windows XP
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: mkaply, Assigned: ehsan.akhgari)

References

()

Details

(Keywords: relnote, verified1.8.0.9, verified1.8.1.1)

Attachments

(2 files, 1 obsolete file)

I thought this was related to bug 317420, but it is not. This is a totally different bug although it again only happens on IBM Inforprint/Lexmark drivers

This crash happens in opt and debug builds.

I'll attach a call stack if it is useful.

If you want to recreate this problem., you can install the driver here:

http://www-1.ibm.com/support/docview.wss?rs=95&context=SRATEK&dc=D400&q1=psd1*&uid=psd1P4000300&loc=en_US&cs=utf-8&lang=en

You don't need the printer.
Call stack:

IIAAG1DD! 03e0e02a()
IIAAG1DD! 03e0e20c()
IIAAG1DD! 03e0e2fc()
GDI32! 77f28756()
USER32! 77d603fb()
NTDLL! 7c90eae3()
CompositeBitsInMemory(HDC__ * 0xf5211330, int 1322, int 435, int 1060, int 430, int 0, int 0, int 285, int 115, int 1, unsigned char * 0x03316950, MONOBITMAPINFO * 0x0012da80, unsigned char * 0x03556b28, tagBITMAPINFOHEADER * 0x032fe4e0, short 0) line 2050
nsImageWin::Draw(nsImageWin * const 0x032fe458, nsIRenderingContext & {...}, nsIDrawingSurface * 0x03446448, int 0, int 0, int 285, int 115, int 1322, int 435, int 1060, int 430) line 575 + 81 bytes
nsRenderingContextImpl::DrawImage(nsRenderingContextImpl * const 0x034462f8, imgIContainer * 0x032f40b8, const nsRect & {...}, const nsRect & {...}) line 378 + 72 bytes
nsImageFrame::Paint(nsImageFrame * const 0x03543ee4, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 1404
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03543ee4, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsContainerFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 228
nsHTMLContainerFrame::PaintDecorationsAndChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, int 0, unsigned int 0) line 138
nsInlineFrame::Paint(nsInlineFrame * const 0x03543d8c, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 327
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03543d8c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsBlockFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03543d8c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 287
PaintLine(const nsRect & {...}, const nsRect & {...}, nsLineList_iterator & {...}, int 0, int & 55846392, nsPresContext * 0x032da798, nsIRenderingContext & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, nsBlockFrame * 0x03543adc) line 6377
nsBlockFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6445 + 44 bytes
nsHTMLContainerFrame::PaintDecorationsAndChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, int 1, unsigned int 0) line 138
nsBlockFrame::Paint(nsBlockFrame * const 0x03543adc, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6272
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03543adc, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsContainerFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 228
nsTableCellFrame::Paint(nsTableCellFrame * const 0x03543a7c, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 440
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03543a7c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsContainerFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 228
nsTableRowFrame::Paint(nsTableRowFrame * const 0x035437b4, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 561
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x035437b4, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsContainerFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 228
nsTableRowGroupFrame::Paint(nsTableRowGroupFrame * const 0x03523360, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 229
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03523360, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsContainerFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 228
nsTableFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 1365
nsTableFrame::Paint(nsTableFrame * const 0x03543398, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 1427
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03543398, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsTableOuterFrame::Paint(nsTableOuterFrame * const 0x0354323c, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 335
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x0354323c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsBlockFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x0354323c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 287
PaintLine(const nsRect & {...}, const nsRect & {...}, nsLineList_iterator & {...}, int 0, int & 55518116, nsPresContext * 0x032da798, nsIRenderingContext & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, nsBlockFrame * 0x03542f1c) line 6377
nsBlockFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6445 + 44 bytes
nsHTMLContainerFrame::PaintDecorationsAndChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, int 1, unsigned int 0) line 138
nsBlockFrame::Paint(nsBlockFrame * const 0x03542f1c, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6272
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03542f1c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsBlockFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x03542f1c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 287
PaintLine(const nsRect & {...}, const nsRect & {...}, nsLineList_iterator & {...}, int 0, int & 55518116, nsPresContext * 0x032da798, nsIRenderingContext & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, nsBlockFrame * 0x034f291c) line 6377
nsBlockFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6445 + 44 bytes
nsHTMLContainerFrame::PaintDecorationsAndChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, int 1, unsigned int 0) line 138
nsBlockFrame::Paint(nsBlockFrame * const 0x034f291c, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6272
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x034f291c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsBlockFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x034f291c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 287
PaintLine(const nsRect & {...}, const nsRect & {...}, nsLineList_iterator & {...}, int 0, int & 55518848, nsPresContext * 0x032da798, nsIRenderingContext & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, nsBlockFrame * 0x034f270c) line 6377
nsBlockFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6445 + 44 bytes
nsHTMLContainerFrame::PaintDecorationsAndChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, int 1, unsigned int 0) line 138
nsBlockFrame::Paint(nsBlockFrame * const 0x034f270c, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6272
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x034f270c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsBlockFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x034f270c, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 287
PaintLine(const nsRect & {...}, const nsRect & {...}, nsLineList_iterator & {...}, int 0, int & 55518116, nsPresContext * 0x032da798, nsIRenderingContext & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, nsBlockFrame * 0x034f2428) line 6377
nsBlockFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6445 + 44 bytes
nsHTMLContainerFrame::PaintDecorationsAndChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, int 1, unsigned int 0) line 138
nsBlockFrame::Paint(nsBlockFrame * const 0x034f2428, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 6272
nsContainerFrame::PaintChild(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsIFrame * 0x034f2428, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 283
nsContainerFrame::PaintChildren(nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 228
nsContainerFrame::Paint(nsContainerFrame * const 0x034f2164, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 209
nsPageContentFrame::Paint(nsPageContentFrame * const 0x034f2164, nsPresContext * 0x032da798, nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer eFramePaintLayer_Overlay, unsigned int 0) line 192 + 27 bytes
PresShell::Paint(PresShell * const 0x0335cd78, nsIView * 0x032e5148, nsIRenderingContext & {...}, const nsRect & {...}) line 5815 + 31 bytes
nsView::Paint(nsView * const 0x032e5148, nsIRenderingContext & {...}, const nsRect & {...}, unsigned int 0, int & 10254560) line 316
nsViewManager::RenderDisplayListElement(DisplayListElement2 * 0x035535c0, nsIRenderingContext * 0x034462f8) line 1460
nsViewManager::RenderViews(nsView * 0x03061b00, nsIRenderingContext & {...}, const nsRegion & {...}, nsIDrawingSurface * 0x00000000, const nsVoidArray & {...}) line 1375
nsViewManager::Display(nsViewManager * const 0x032c4d88, nsIView * 0x03061b00, int 0, int 0, const nsRect & {...}) line 3612 + 39 bytes
nsSimplePageSequenceFrame::PrintNextPage(nsSimplePageSequenceFrame * const 0x034f1f04, nsPresContext * 0x032da798) line 880
nsPrintEngine::PrintPage(nsPresContext * 0x032da798, nsIPrintSettings * 0x03183438, nsPrintObject * 0x034ab928, int & 1) line 3511 + 22 bytes
nsPagePrintTimer::Notify(nsPagePrintTimer * const 0x034f36b0, nsITimer * 0x035538c8) line 91 + 41 bytes
nsTimerImpl::Fire() line 398
nsTimerManager::FireNextIdleTimer(nsTimerManager * const 0x01a21210) line 628
nsAppShell::Run(nsAppShell * const 0x0102c710) line 142
nsAppStartup::Run(nsAppStartup * const 0x0102c670) line 150 + 26 bytes
XRE_main(int 1, char * * 0x009c7710, const nsXREAppData * 0x0042201c kAppData) line 2351 + 35 bytes
main(int 1, char * * 0x009c7710) line 61 + 18 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 7c816d4f()
Note that printing in print preview doesn't work around this crash.
Here are the values in CompositeBits when it crahes:

	aDHeight	430
	aDWidth	1060
	aDX	1322
	aDY	435
	aNumPaletteColors	0
	aSHeight	115
	aSrcy	1
	aSWidth	285
	aSX	0

I did notice there is a floating div in the page and when I remove that it works.
I'm guessing it's crashing here:

        // output the composed image
        ::StretchDIBits(aTheHDC, aDX, aDY, aDWidth, aDHeight,
                        aSX, aSrcy, aSWidth, aSHeight,
                        screenBits, (LPBITMAPINFO)&offbmi,
                        256 == aNumPaletteColors ? DIB_PAL_COLORS : DIB_RGB_COLORS,
                        SRCCOPY);
It is crashing there. 

if I set aDWidth down to 0 it doesn't crash. No idea what's going on here.
Another interesting observation.

The crash is happening printing the main image at hippo - the image dimensions are 285x116.

When I look at the code that is doing the draw, sr.height is 115 for some reason. width is 285



 
Severity: normal → critical
We can't fix this. It is genuinely a bug in the driver.

The driver folks have fixes - the problem is how many drivers will need to be updated and how they will get out.

Work around is to change the scale factor in Print Preview - don't use scale to fit - and you won't see the problem.

I wish I had a better story.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → WONTFIX
can you get a release note added listing bad versions, suggested update versions and urls? :)
Keywords: relnote
*** Bug 338324 has been marked as a duplicate of this bug. ***
*** Bug 345947 has been marked as a duplicate of this bug. ***
mkaply: technically we can fix this by adding SEH (see the plugin code), there's a bug somewhere where i describe starting to work on this.
(In reply to comment #11)
> mkaply: technically we can fix this by adding SEH (see the plugin code),
> there's a bug somewhere where i describe starting to work on this.

Can someone who has access to the buggy printer driver please test the
following build, and see if the crash happens or not?

<http://www.mcsmurf.de/mozilla/firefox-trunk-20060821-print.zip>

I have written a patch including the mentioned SEH code which I think should fix this problem, but I don't have access to such a printer to test it.  Thanks!
*** Bug 324135 has been marked as a duplicate of this bug. ***
(In reply to comment #12)
> 
> Can someone who has access to the buggy printer driver please test the
> following build, and see if the crash happens or not?
> 
> <http://www.mcsmurf.de/mozilla/firefox-trunk-20060821-print.zip>
> 
> I have written a patch including the mentioned SEH code which I think should
> fix this problem, but I don't have access to such a printer to test it. 
> Thanks!
> 

Hi there,

One of my colleagues has tested out the patched version:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060821 Minefield/3.0a1

and I'm happy to report that it fixes the problem for us.
I'm reopening this bug, and I'll submit a patch shortly, which is the one used in the build available at the URL in comment #12.  I appreciate if there are more testers which can test that build (I don't have access to such buggy printer drivers.)
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
Taking this bug...
Status: REOPENED → ASSIGNED
Assignee: printing → ehsan.akhgari
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
Probably a duplicate of bug 317420, please confirm.
reinout@gmail.com: no. no. no. open printing bugs relating to crashing because of buggy drivers are a duplicate of this one.
(In reply to comment #16)
> Taking this bug...
> 

The build you have fixes my bug as well.

Can we PLEASE get a patch to put in ASAP?

Thanks
(In reply to comment #19)
> (In reply to comment #16)
> > Taking this bug...
> > 
> 
> The build you have fixes my bug as well.

Great.

> Can we PLEASE get a patch to put in ASAP?

Sure.  Unfortunately I can't invest enough time to update this patch for the recent trunk code, but I guess it doesn't need a lot of modifications to work.
(In reply to comment #19)
> Sure.  Unfortunately I can't invest enough time to update this patch for the
> recent trunk code, but I guess it doesn't need a lot of modifications to work.

Also related: bug #350087.
Attached patch Fix for specific problem (obsolete) — Splinter Review
I've added a try catch block only around the failing call.

A build change is NOT needed. Just the file change. We do get this warning now, which doesn't really bother me:

c:/builds/180branch/mozilla/gfx/src/windows/nsImageWin.cpp(2045) : warning C4530
: C++ exception handler used, but unwind semantics are not enabled. Specify -GX
Comment on attachment 245461 [details] [diff] [review]
Fix for specific problem

Right now I simple ignore the call in the failing case. In my debugging, I found that aSrcy is 1 when it should be 0 with these drivers (printing with other drivers shows this) so I can also submit a patch that retries the call with aSrcy -1.
Attachment #245461 - Flags: review?(roc)
Attached patch Use SEHSplinter Review
Better fix that uses SEH and retries the API.
Attachment #245465 - Flags: review?
Attachment #245465 - Flags: review? → review?(roc)
(In reply to comment #24)
> Created an attachment (id=245465) [edit]
> Use SEH
> 
> Better fix that uses SEH and retries the API.

I think it would be better to handle the case where the inner StretchDIBits() throws an exception as well, by nesting a __try/__except inside the __except block.
Comment on attachment 245465 [details] [diff] [review]
Use SEH

This is a dirty hack, but I guess we need it. I don't think we should add additional try blocks unless we find that they're actually needed.
Attachment #245465 - Flags: superreview+
Attachment #245465 - Flags: review?(roc)
Attachment #245465 - Flags: review+
Comment on attachment 245465 [details] [diff] [review]
Use SEH

This bug is a big deal inside IBM. Basically you can't print many pages inside IBM because we use these printers everywhere.

I'd prefer not to build a custom build for IBM...
Attachment #245465 - Flags: approval1.8.1.1?
Attachment #245465 - Flags: approval1.8.0.9?
*** Bug 360016 has been marked as a duplicate of this bug. ***
we've discovered this happens with Dell printers as well...
Just to be clear, this is fixed on trunk and has baked for a while.

I really need this on the branches...
Status: ASSIGNED → RESOLVED
Closed: 17 years ago16 years ago
Resolution: --- → FIXED
Comment on attachment 245465 [details] [diff] [review]
Use SEH

approved for 1.8/1.8.0 branch, a=dveditz for drivers
Attachment #245465 - Flags: approval1.8.1.1?
Attachment #245465 - Flags: approval1.8.1.1+
Attachment #245465 - Flags: approval1.8.0.9?
Attachment #245465 - Flags: approval1.8.0.9+
Verified fixed for 1.8.0.9 and 1.8.1.1 Tested with 1509pre and 2001pre 
Status: RESOLVED → VERIFIED
Comment on attachment 245461 [details] [diff] [review]
Fix for specific problem

this patch seems to be obsolete now
Attachment #245461 - Attachment is obsolete: true
Attachment #245461 - Flags: review?(roc)
*** Bug 350585 has been marked as a duplicate of this bug. ***
Depends on: 363592
Duplicate of this bug: 403021

I'm guessing it's crashing here:

    // output the composed image
    ::StretchDIBits(aTheHDC, aDX, aDY, aDWidth, aDHeight,
                    aSX, aSrcy, aSWidth, aSHeight,
                    screenBits, (LPBITMAPINFO)&offbmi,
                    256 == aNumPaletteColors ? DIB_PAL_COLORS : DIB_RGB_COLORS,
                    SRCCOPY);

A blog has been published on https://www.huuq.net recently about this problem, I guess, such problems still continue.

You need to log in before you can comment on or make changes to this bug.