Closed
Bug 331077
Opened 20 years ago
Closed 20 years ago
nsFontMetricsXft::CacheFontMetrics() : face may be NULL [@ nsFontMetricsXft::CacheFontMetrics]
Categories
(Core Graveyard :: GFX: Gtk, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: tobiasu, Assigned: dbaron)
References
Details
(4 keywords, Whiteboard: (fixed by 183729))
Crash Data
User-Agent: Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.0.1) Gecko/20060318 Firefox/1.5.0.1
Build Identifier: Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.0.1) Gecko/20060318 Firefox/1.5.0.1
Under some circumstances, XftLockFace() can return NULL (See XftLockFace sourcecode...). This results in a nullpointer dereference and obviously in a crash.
There was a bug report about this here: https://bugzilla.mozilla.org/show_bug.cgi?id=183729, but it was closed as a duplicate of this bug: https://bugzilla.mozilla.org/show_bug.cgi?id=180309. Since this bug description is not really appropriate (It's not cause by unreadable fonts), I open a new bugreport.
Two patches are available:
http://arkiv.netbsd.se/?ml=openbsd-ports&a=2006-03&m=1852803 or https://bugzilla.mozilla.org/attachment.cgi?id=140288
This bug also applies to the Mozilla Suite.
Reproducible: Sometimes
Steps to Reproduce:
Browse on zdnet or ebay... (May have something to do with the minimum fontsize and changed default fonts, however my setup is to complex to reproduce this and it's a complete waste of time. XftLockFace() is specified to return NULL and the code should act uppon it, so just fix it)
Actual Results:
Crash. (Segfault)
Expected Results:
Not to crash ;)
--with-system-jpeg=/usr/local --with-system-png=/usr/local --with-system-zlib=/usr/lib --with-pthreads --without-system-nspr --enable-xft --enable-optimize=-Os --enable-default-toolkit=gtk2 --disable-debug --disable-tests --disable-pedantic --disable-installer --disable-updater --disable-gnomeui --disable-gnomevfs --enable-xinerama --enable-svg --enable-svg-renderer=cairo --enable-system-cairo --enable-canvas --enable-application=browser --prefix=/usr/local --sysconfdir=/etc
Updated•20 years ago
|
Component: General → Layout: Fonts and Text
Product: Firefox → Core
QA Contact: general → layout.fonts-and-text
Version: unspecified → Trunk
| Assignee | ||
Comment 1•20 years ago
|
||
There's a patch that will allegedly fix this on bug 183729.
| Assignee | ||
Comment 2•20 years ago
|
||
*** This bug has been marked as a duplicate of 183729 ***
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
| Assignee | ||
Comment 3•20 years ago
|
||
Marking this duplicate was a bad idea, that other bug was originally something else, but just happened to have a patch that would fix this one.
This is a topcrash for Linux Firefox 1.5.0.2.
There's a patch on the bug 183729 for it.
| Assignee | ||
Updated•20 years ago
|
Assignee: nobody → dbaron
Status: UNCONFIRMED → NEW
Component: Layout: Fonts and Text → GFX: Gtk
Ever confirmed: true
| Assignee | ||
Comment 4•20 years ago
|
||
Patch there checked in to trunk and MOZILLA_1_8_BRANCH.
I think we need to make sure that failure returns from this function don't crash elsewhere, though. I'm not confident that that's the case...
Keywords: fixed1.8
| Assignee | ||
Updated•20 years ago
|
Status: NEW → RESOLVED
Closed: 20 years ago → 20 years ago
Resolution: --- → FIXED
| Assignee | ||
Comment 5•20 years ago
|
||
Yeah, I'm thinking that what we really need to do is make checking that XftLockFace succeeds be part of GetXftFont so that FindFont doesn't return a font for which it fails.
| Assignee | ||
Comment 6•20 years ago
|
||
Thing is, we call XftLockFace only on mWesternFont, not on all of them, so I wouldn't want to waste the time later. (Or if XftLockFace fails, would other uses of the font also fail?)
| Assignee | ||
Updated•20 years ago
|
| Assignee | ||
Comment 7•20 years ago
|
||
What I don't understand is how XftLockFace could return null when XftFontOpenInfo has already returned non-null.
That said, we should probably call XftUnlockFace at some point...
| Assignee | ||
Comment 8•20 years ago
|
||
(In reply to comment #7)
> That said, we should probably call XftUnlockFace at some point...
Er, never mind, we already do.
| Assignee | ||
Comment 9•20 years ago
|
||
Setting back to fixed -- based on looking at the Xft code, this is a situation that basically shouldn't happen unless we run out of memory, although that may not have been true for older versions of Xft. In any case, we *do* handle the error, as long as it's not the first font in the font cache, thanks to what nsFontCache::GetMetricsFor does when nsIFontMetrics::Init fails.
But I suspect something was different for older versions of Xft, or I'm misreading something, since users are actually hitting it...
Status: REOPENED → RESOLVED
Closed: 20 years ago → 20 years ago
Keywords: fixed1.8
Resolution: --- → FIXED
Updated•20 years ago
|
Flags: blocking1.8.0.3? → blocking1.8.0.3+
| Assignee | ||
Updated•20 years ago
|
Updated•17 years ago
|
Product: Core → Core Graveyard
Updated•15 years ago
|
Crash Signature: [@ nsFontMetricsXft::CacheFontMetrics]
You need to log in
before you can comment on or make changes to this bug.
Description
•