Closed Bug 461283 Opened 16 years ago Closed 16 years ago

Crash [@ fastcopy_I ] - printing broken

Categories

(Core :: Widget: Win32, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: Portfolioso, Assigned: blassey)

References

Details

(Keywords: crash, regression, verified1.9.1)

Crash Data

Attachments

(1 file, 1 obsolete file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b2pre) Gecko/20081022 Minefield/3.1b2pre
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b2pre) Gecko/20081022 Minefield/3.1b2pre

Browser crashes when pressing the OK button on the print dialog when printing to a PDF. I did not try to print to a regular printer at this time

Crash Report: http://crash-stats.mozilla.com/report/index/92294657-a085-11dd-bfe1-001a4bd43ef6

Reproducible: Always

Steps to Reproduce:
1. Visit http://www.fairfieldmirror.com/news/university_college_refuses_to_comment_on_cheating
2.Press the print button on the webpage (top right side of the article above the picture)
3. The print dialog will appear. Press OK
4. 
Actual Results:  
Browser crashes

Expected Results:  
The page should print
bp-5bd697c2-a0b7-11dd-804a-001321b13766 (Minefield/3.1b2pre ID:20081022033543)
bp-c6b79528-a0b7-11dd-86eb-001321b13766 (Minefield/3.1b2pre ID:20081022033543)

Signature	fastcopy_I
UUID	5bd697c2-a0b7-11dd-804a-001321b13766
Time	2008-10-22 21:00:28-07
Uptime	224
Product	Firefox
Version	3.1b2pre
Build ID	20081022033543
OS	Windows NT
OS Version	5.1.2600 Service Pack 3
CPU	x86
CPU Info	GenuineIntel family 15 model 2 stepping 9
Crash Reason	EXCEPTION_ACCESS_VIOLATION
Crash Address	0x1d67000
Comments	

Frame 	Module 	Signature 	Source
0 	mozcrt19.dll 	fastcopy_I 	
1 	mozcrt19.dll 	_VEC_memcpy 	
2 	mozcrt19.dll 	_VEC_memcpy 	
3 	xul.dll 	nsPrintSettingsWin::CopyDevMode(_devicemodeW*,_devicemodeW*&) 	widget/src/windows/nsPrintSettingsWin.cpp:118
4 	xul.dll 	nsPrintSettingsWin::SetDevMode(_devicemodeW*) 	widget/src/windows/nsPrintSettingsWin.cpp:144
5 	kernel32.dll 	kernel32.dll@0xff11

this is not limited to pdf printing, but trying to print to any installed printer in windows. if you just get the "an unknown error has occurred" message try again the printing steps and the crash will happen.

from http://forums.mozillazine.org/viewtopic.php?p=4798625#p4798625 the regrange is:
20081021182718 works
20081021185233 fails

by this and the stacktrace i presume this is because of Bug 460979 => CCing Joshua for comment.
Blocks: 460979
Status: UNCONFIRMED → NEW
Component: General → GFX: Gtk
Ever confirmed: true
Keywords: crash
Product: Firefox → Core
QA Contact: general → gtk
Summary: Crash [@ fastcopy_I ] → Crash [@ fastcopy_I ] - printing broken
Version: unspecified → Trunk
Bug 344111 affected only Linux (GTK+) code, so there's no way it could be causing a crash on Windows. Try again. :)
No longer blocks: 460979
(In reply to comment #2)
> Bug 344111 affected only Linux (GTK+) code, so there's no way it could be
> causing a crash on Windows. Try again. :)

Uh, not sure how I came up with that bug number, but I meant bug 460979.
Component: GFX: Gtk → Widget: Win32
QA Contact: gtk → win32
arrg, you're right. but then only http://hg.mozilla.org/mozilla-central/rev/0b9819e66ace (Bug 459674, which made changes in that timeframe to nsPrintSettingsWin.cpp) remains by my wild guessing :-).
Flags: blocking1.9.1?
the crash is happening in the memcpy here:
http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsPrintSettingsWin.cpp#118

I assume size is wrong
This fixes the crash for me.
Assignee: nobody → blassey
Status: NEW → ASSIGNED
Attachment #344589 - Flags: review?
Attachment #344589 - Flags: review? → review?(pavlov)
Comment on attachment 344589 [details] [diff] [review]
switches from DEVMODE and PRINTDLG to DEVMODEW and PRINTDLGW


>@@ -897,20 +894,19 @@
>   if (!printerName) return NS_ERROR_FAILURE;
> 
>   // Now create a DEVNAMES struct so the the dialog is initialized correctly.
>-  nsCAutoString tempPrinterName;
>-  rv = NS_CopyUnicodeToNative(nsDependentString(printerName), tempPrinterName);
>-  NS_ENSURE_SUCCESS(rv, rv);
>+  nsAutoString tempPrinterName(printerName);
> 
>   PRUint32 len = tempPrinterName.Length();
>-  hDevNames = (HGLOBAL)::GlobalAlloc(GHND, len+sizeof(DEVNAMES)+1);
>+  hDevNames = (HGLOBAL)::GlobalAlloc(GHND, sizeof(wchar_t) * (len + 1) + 
>+                                     sizeof(DEVNAMES));
>   DEVNAMES* pDevNames = (DEVNAMES*)::GlobalLock(hDevNames);
>   pDevNames->wDriverOffset = sizeof(DEVNAMES);
>   pDevNames->wDeviceOffset = sizeof(DEVNAMES);
>   pDevNames->wOutputOffset = sizeof(DEVNAMES)+len+1;
>   pDevNames->wDefault      = 0;
> 
>-  char* device = &(((char*)pDevNames)[pDevNames->wDeviceOffset]);
>-  strcpy(device, tempPrinterName.get());
>+  wchar_t* device = &(((wchar_t*)pDevNames)[pDevNames->wDeviceOffset]);
>+  wcscpy(device, tempPrinterName.get());
>   ::GlobalUnlock(hDevNames);
> 


I don't think you need the tempPrinterName temporary any more -- you should be able to just use printerName, no?  I don't know what type printerName is.  r+ either way.
Attachment #344589 - Flags: review?(pavlov) → review+
carrying vlad's r+
Attachment #344589 - Attachment is obsolete: true
Attachment #344592 - Flags: review+
changeset:   20801:95f09bc4d690
tag:         tip
user:        Brad Lassey <blassey@mozilla.com>
date:        Fri Oct 24 01:21:15 2008 -0400
summary:     Bug 461283 -  Crash [@ fastcopy_I ] - printing broken r=vlad
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
No, printing works fine here.
(In reply to comment #11)
> Is this bug back again or are these reports caused by something else?
> 
> http://crash-stats.mozilla.com/report/list?range_value=2&range_unit=weeks&version=Firefox%3A3.1b2pre&signature=fastcopy_I

Whatever it was it has been solved in 20081114 nightly.
Sorry for the bugspam.
Flags: blocking1.9.1? → blocking1.9.1+
Status: RESOLVED → VERIFIED
Crash Signature: [@ fastcopy_I ]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: