Closed Bug 183729 Opened 22 years ago Closed 19 years ago

Segmentation fault in XftLockFace (.ttf files need to be world-readable)

Categories

(Core Graveyard :: GFX: Gtk, defect)

x86
Linux
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jensus, Assigned: dbaron)

References

()

Details

(Keywords: crash, fixed1.8.0.4, fixed1.8.1, Whiteboard: [patch])

Attachments

(4 files, 3 obsolete files)

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021029 Phoenix/0.4 Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021205 When viewing some pages like http://themes.mozdev.org/themes/earlyblue.html and http://www.zvon.org/ mozilla crashes. #0 0x40aef885 in XftLockFace () from /home/jens/garnome/lib/libXft.so.2 #1 0x40abefba in NSGetModule () from /usr/local/mozilla/components/libgfx_gtk.so #2 0x40abef64 in NSGetModule () from /usr/local/mozilla/components/libgfx_gtk.so #3 0x40abe40a in NSGetModule () from /usr/local/mozilla/components/libgfx_gtk.so #4 0x400271cf in nsFontCache::GetMetricsFor () from /usr/local/mozilla/libgkgfx.so #5 0x4002627e in DeviceContextImpl::GetMetricsFor () from /usr/local/mozilla/libgkgfx.so #6 0x40a9ec87 in NSGetModule () from /usr/local/mozilla/components/libgfx_gtk.so #7 0x41168a36 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so ... lots of calls to NSGetModule ... #78 0x411b0893 in NSGetModule () from /usr/local/mozilla/components/libgklayout.so #79 0x401848c1 in PL_HandleEvent () from /usr/local/mozilla/libxpcom.so #80 0x401847c9 in PL_ProcessPendingEvents () from /usr/local/mozilla/libxpcom.so #81 0x401858bb in nsEventQueueImpl::ProcessPendingEvents () from /usr/local/mozilla/libxpcom.so #82 0x40d7b7bd in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #83 0x40d7b506 in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #84 0x403a4c90 in g_io_unix_dispatch (source_data=0x816bda0, current_time=0xbffff444, user_data=0x823ff50) at giounix.c:135 #85 0x403a6358 in g_main_dispatch (dispatch_time=0xbffff444) at gmain.c:656 #86 0x403a6963 in g_main_iterate (block=1, dispatch=1) at gmain.c:877 #87 0x403a6afc in g_main_run (loop=0x823ff90) at gmain.c:935 #88 0x402c87b7 in gtk_main () at gtkmain.c:524 #89 0x40d7bc2e in NSGetModule () from /usr/local/mozilla/components/libwidget_gtk.so #90 0x415d6c88 in nsldapi_ld_defaults () from /usr/local/mozilla/components/libnsappshell.so #91 0x080526e0 in getCountry () #92 0x0805305b in main () Reproducible: Always Steps to Reproduce:
Severity: major → critical
Keywords: crash
Do you use a XFT enabled build ? (if yes: Why can't I see a comment about this in this report ?)
Here are the buildoptions ac_add_options --disable-mailnews ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --enable-cpp-rtti ac_add_options --enable-strip-libs ac_add_options --without-jpeg ac_add_options --without-zlib ac_add_options --without-png ac_add_options --enable-mathml ac_add_options --enable-crypto ac_add_options --enable-xft
worksforme with linux/xft trunk if you still have your source tree, can you just recompile the 'gfx' directory with symbols? it would help a lot. ==> blizzard
Assignee: asa → blizzard
Well, it's working here. Can you do an NSPR_LOG_MODULES=XftFontLoad:5 on those pages and let me know what the output is right before the crash?
Blocks: xft_tracking
I am getting this crash too, with the "mozilla-1.2.1-4mdk.i586.rpm" package. XftLockFace() is being passed a null pointer for some reason, but since I'm not building from source I can't tell why...
I've built a debug mozilla from mozilla-1.2.1-4mdk.i586.src.rpm. Here is the stack trace: #0 0x410fd8fd in XftLockFace () from /usr/X11R6/lib/libXft.so.1 #1 0x410b31d8 in nsFontMetricsXft::CacheFontMetrics() (this=0x8632db0) at nsFontMetricsXft.cpp:760 #2 0x410b316f in nsFontMetricsXft::RealizeFont() (this=0x8632db0) at nsFontMetricsXft.cpp:744 #3 0x410b24f8 in nsFontMetricsXft::Init(nsFont const&, nsIAtom*, nsIDeviceContext*) (this=0x8632db0, aFont=@0x89f35d0, aLangGroup=0x83fc300, aContext=0x864b218) at nsFontMetricsXft.cpp:267 #4 0x400372b8 in nsFontCache::GetMetricsFor(nsFont const&, nsIAtom*, nsIFontMetrics*&) (this=0x856cd00, aFont=@0x89f35d0, aLangGroup=0x83fc300, aMetrics=@0xbfffabe0) at nsDeviceContext.cpp:669 #5 0x400362b3 in DeviceContextImpl::GetMetricsFor(nsFont const&, nsIAtom*, nsIFontMetrics*&) (this=0x864b218, aFont=@0x89f35d0, aLangGroup=0x83fc300, aMetrics=@0xbfffabe0) at nsDeviceContext.cpp:344 #6 0x41dd9d6b in ComputeLineHeight (aPresContext=0x85657c0, aRenderingContext=0x8864b10, aStyleContext=0x8983ce4) at nsHTMLReflowState.cpp:2341 And this is where it's going wrong, in mozilla/gfx/src/gtk/nsFontMetricsXft.cpp: 747 nsresult 748 nsFontMetricsXft::CacheFontMetrics(void) 749 { 750 // Get our scale factor 751 float f; 752 float val; 753 mDeviceContext->GetDevUnitsToAppUnits(f); 754 755 // Get our font face 756 FT_Face face; 757 TT_OS2 *os2; 758 XftFont *xftFont = mWesternFont->GetXftFont(); 759 760 face = XftLockFace(xftFont); The problem is on line 760, where XftLockFace is being called with a null pointer. There are other points in that file where nsFontXft::GetXftFont() is assumed not to return null too. On my system this assumption is wrong! This is the first time I've looked at this file, so deeper analysis is beyond me at the moment. I built with these options: ./configure --enable-xft --enable-debug --disable-strip --disable-mailnews --disable-calendar --enable-crypto --disable-composer --disable-installer
Do you have .fon files in your path?
Christopher: no, I don't have any .fon files on my system. But I do have .ttf files imported from a Windows partition. Repeating this crash with a debug version of libXft.so, I find that nsFontXft::GetXftFont is returning 0 when looking at the following .ttf file: /usr/X11R6/lib/X11/fonts/drakfont/ttf/verdana.ttf The cause of this is a call to FT_New_Face failing, here: FT_New_Face in _XftLockFile (xftfreetype.c:159) in XftFontOpenInfo (xftfreetype.c:670) in XftFontOpenPattern (xftfreetype.c:915) in nsFontXft::GetXftFont (nsFontMetricsXft.cpp:1580) I removed the verdana.ttf file outside of my font path, and Mozilla stopped crashing! Unfortunately, when I moved the font BACK again I could no longer recreate the crash (is font information cached?) So it is quite possible that the crash was brought on by a buggy ttf file, however I think that Mozilla should handle the case where the library call to XftFontOpenPattern returns 0, rather than crashing. If verdana.ttf is broken then the Xft library is behaving correctly, we just need to be more careful in dealing with the return value.
Is it possible that as the user you are running mozilla as you can not read the .ttf file? I'm just curious so I can set up tests. fwiw, I agree that this is a case that needs to be handled.
Yes! You're absolutely right, some of my ttf files have permissions 755, others have 440 (including verdana). I hadn't noticed that before, and have no idea how it happened. I didn't know that fonts needed to be world-readable, but I'll change them now. Unfortunately I can't recreate the bug, so I can't tell you whether that would have fixed the problem!
OK, after restarting and deleting ~/.mozilla, I can recreate the crash at any time by doing: chmod o-r *.ttf in my fonts directory. I think those permissions were funny because they were automatically copied from a windows partition mounted with a restrictive umask - perhaps one for the drakfont developers? Thanks for your help.
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Summary: Segmentation fault in XftLockFace → Segmentation fault in XftLockFace (.ttf files need to be world-readable)
*** Bug 184405 has been marked as a duplicate of this bug. ***
This is a bug in fontconfig, which fails when fonts are not readable :(
>> This is a bug in fontconfig, which fails when fonts are not readable :( I'm not familiar with the fontconfig library, so I don't know whether the failure is correct behaviour under these conditions. But at least it fails cleanly! Surely there is (also) a bug in Mozilla because Mozilla does not handle the failure?
*** Bug 196281 has been marked as a duplicate of this bug. ***
*** Bug 197635 has been marked as a duplicate of this bug. ***
*** Bug 201878 has been marked as a duplicate of this bug. ***
I'm seeing something similiar (Bug 201878). I recently installed FreeType version 2.1.4. My fonts look a whole lot perttyer though.
*** Bug 207773 has been marked as a duplicate of this bug. ***
*** Bug 211720 has been marked as a duplicate of this bug. ***
*** Bug 203350 has been marked as a duplicate of this bug. ***
*** Bug 212418 has been marked as a duplicate of this bug. ***
*** Bug 212942 has been marked as a duplicate of this bug. ***
*** Bug 213819 has been marked as a duplicate of this bug. ***
Attached patch check return (deleted) — Splinter Review
Attachment #129087 - Flags: review?(blizzard)
*** Bug 215132 has been marked as a duplicate of this bug. ***
*** Bug 216095 has been marked as a duplicate of this bug. ***
I'm the reporter of bug 216095, which has just been duped to this bug. In my case, the reason for the crash was not restrictive permissions, but rather dangling links: I had linked a bunch of TTF fonts from my windows partition into my Linux font directory, and promptly forgotten about it. Later, I updated my Windows version on that partition - in the process of doing that, some fonts disappeared, and left the links dangling. Everything was fine until I visited www.zeit.de, which seems to use at least one of the 'missing' fonts -> Crash!
'blocking1.5b'->? On the one hand, this can potentially affect many Linux users, since a lot of the popular distributions (RH, Mandrake, Gentoo, possibly Debian, ...) are shipping Xft-enabled Mozilla builds, and permission problems when mounting Windows partitions as sources for TTF fonts seem to be common. For the user, debugging problems like this is difficult, since they are hard to reproduce: you can have two identical Linux installations, one of them crashing (if the Win partition contains a certain font, but it's unreadable) and the other not crashing (if the font isn't installed under Windows). Judging from the number of duplicates, this problem is quite common, and it happens (e.g. in the case of www.zeit.de) on high-profile sites. On the other hand, there is a patch by timeless available, which simply adds null checking, and therefore seems quite low-risk to me. What do the reviewers/drivers say?
Flags: blocking1.5b?
not going to block on this for 1.5a since our stock builds aren't impacted.
Flags: blocking1.5b? → blocking1.5b-
Comment on attachment 129087 [details] [diff] [review] check return This pattern could be: >- if (!mXftFont) >- GetXftFont(); >+ if (!mXftFont && !GetXftFont()) >+ return NS_ERROR_NOT_AVAILABLE; (I haven't looked at this in more detail, though.)
Re #30: Yes, I'll have to follow that logic - my 'blocking' request was a bit overzealous. Would timeless' null checks meet the drivers' criterion of being 'low risk' enough for checkin into the branch (provided that patch passes r/sr)?
dbaron's pattern should work fine(comment #31). I agree with Christian (comment #29) that this bug will affect a lot of Linux users. Let's get this fixed before 1.5f. blizzard, why don't you 'triple' as 'r,sr and a1.5b' :-) ?
Component: Browser-General → GFX: Gtk
blizzard, can you move this forward (before 1.5. and also in 1.4.1/2)? With dbaron's change in comment #31, the patch should be fine, shouldn't it? Although the default linux binary build is not affected, realistically who's gonna use the default build on Linux when gtk2+Xft build with 'hundred times' better rendering quality is available?
Comment on attachment 129087 [details] [diff] [review] check return r=blizzard
Attachment #129087 - Flags: review?(blizzard) → review+
QA Contact: asa
patch works for me; I'm currently encountering this bug and all of the ttf files on my system *are* world readable. it is very strange.
*** Bug 223224 has been marked as a duplicate of this bug. ***
Comment on attachment 129087 [details] [diff] [review] check return To move things forward, i'm asking for sr. I'll check this in with the change suggested by dbaron in comment #31 iftimeless is not going to.
Attachment #129087 - Flags: superreview?(roc)
Attachment #129087 - Flags: superreview?(roc) → superreview+
patch landed
forgot to mark as resolved/fixed
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
*** Bug 201960 has been marked as a duplicate of this bug. ***
*** Bug 221065 has been marked as a duplicate of this bug. ***
*** Bug 218691 has been marked as a duplicate of this bug. ***
This bug still exists. I've tried with the latest nightly Firebird build. Using a debuggable libXft I got very similar messages to the XftLockFact in libXft error described in this bug. An strace reveals that Firebird is dying when attempting to open a font (on http://www.pridefc.com/) that's not present: open("/usr/share/fonts/ja/TrueType/kochi-mincho.ttf", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/fonts/ja/TrueType/kochi-mincho.ttf", O_RDONLY) = -1 ENOENT (No such file or directory) --- SIGSEGV (Segmentation fault) @ 0 (0) --- unlink("/root/.phoenix/default/5odkgce4.slt/lock") = 0 exit_group(11) here's an 'ls -la' of my /usr/share/fonts/ja/TrueType/: -rw-r--r-- 1 root root 1548 Aug 11 05:34 fonts.alias -rw-r--r-- 1 root root 16674 Nov 11 09:22 fonts.cache-1 -rw-r--r-- 1 root root 7285 Nov 11 09:22 fonts.dir -rw-r--r-- 1 root root 7285 Nov 11 09:22 fonts.scale -rw-r--r-- 1 root root 7770652 Aug 11 05:34 kochi-gothic-subst.ttf -rw-r--r-- 1 root root 17318 Aug 11 05:34 kochi-gothic-subst.tti -rw-r--r-- 1 root root 8967464 Aug 11 05:34 kochi-mincho-subst.ttf -rw-r--r-- 1 root root 17318 Aug 11 05:34 kochi-mincho-subst.tti I don't know enough about fontconfig to understand why Firebird is doing what it's doing, but I can say that the patch attached here *does not* resolve the specific issue I'm experiencing.
Yeah, I've seen this as well -- and while the stack is different, the bug is not fixed. See http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=111973 for an explanation of what's happening with fontconfig, though. (This leads to a workaround, which is to uninstall ttfonts-ja and then reinstall it.)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I'm wondering what we can do on mozilla's side until the issue reported in Redhat bugzilla is resolved in fontconfig. I've just filed a bug at freedesktop bugzilla. (http://freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=166)
*** Bug 230239 has been marked as a duplicate of this bug. ***
*** Bug 230689 has been marked as a duplicate of this bug. ***
*** Bug 230792 has been marked as a duplicate of this bug. ***
would someone please post a stack trace?
*** Bug 231462 has been marked as a duplicate of this bug. ***
*** Bug 228783 has been marked as a duplicate of this bug. ***
Could you clarify what you mean by stack trace and explain how to perform one? I'm unfamiliar with the C debugging process. Are you referring to the gdb output when using a debug enabled libXft?
Attached file trace (deleted) —
Here's the trace I got from my debug build (to correlate the line numbers: built from cvs checkout from 2004-01-10).
According to the stack trace, it crashes at line 909: http://lxr.mozilla.org/seamonkey/source/gfx/src/gtk/nsFontMetricsXft.cpp#909 908 // mUnderlineOffset (offset for underlines) 909 val = CONVERT_DESIGN_UNITS_TO_PIXELS(face->underline_position, 910 face->size->metrics.y_scale); It seems like face or face->size is null for some reason. face is obtained here: 844 XftFont *xftFont = mWesternFont->GetXftFont(); 845 if (!xftFont) 846 return NS_ERROR_NOT_AVAILABLE; 847 848 face = XftLockFace(xftFont); 849 os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2); So, we have to check if face or face->size is null.
Attached patch patch (obsolete) (deleted) — Splinter Review
Christian, can you try this? I can't test it because I can't reproduce the crash. BTW, we may just have to return with an error code if 'face' is null.
Btw, it is "face" that's null (looked at it in gdb.) With the patch from attachment id=140181 applied, I no longer get the crash with the trace from attachment id=140178. However, with or without the patch, I repeatedly got crashes with the traces I'm going to attach (2 different traces) -- not sure if it's the same bug or a different problem. (build is now from cvs 2004-01-30). Also, I get multiple "Xft: locking error too many file unlocks" messages. Steps I use to reproduce in TestGtkEmbed: 1) browse a bit 2) chmod go-r all your fonts 3) continue to browse 4) eventually crash
The crash in attachment 140258 [details] is occuring here: http://lxr.mozilla.org/seamonkey/source/layout/html/base/src/nsHTMLReflowState.cpp#2146 2144 GetNormalLineHeight(nsIFontMetrics* aFontMetrics) 2145 { 2146 NS_PRECONDITION(nsnull != aFontMetrics, "no font metrics"); .... 2169 #else 2170 aFontMetrics->GetNormalLineHeight(normalLineHeight); 2171 #endif // FONT_LEADING_APIS_V2 In an optimized build, NS_PRECONDITION is no-op. If |aFontMetrics| is null, we have to bail out earlier, but we apparently don't. I recall there's a bug related to this ... BTW, can you attach the other trace you mentioned, Christian? > Also, I get multiple "Xft: locking error too many file unlocks" messages. Under what condition? With or without the patch applied? Or, did you get this message only after making all your font unreadable (chmod go-r)?
I guess you got the 'unlock-related' message with the patch applied. I should have checked 'face' before calling XftUnlockFace. Now I'm wondering when/why XftLockFace fails. Aha...that's described in comment #44 and comment #45. In that case, we don't have to bother to fall back and we just have to return early with an error code. I'll upload a patch later (I have to run now)
Attached patch patch : make sure FT_Face is not null (obsolete) (deleted) — Splinter Review
If face->size is guaranteed to be valid (as far as face is valid), I can get rid of the second chunk in this patch. Keith, is it the case? BTW, this wouldn't fix the crash in attaachment 140258 because |nsIFontMetrics| is not checked for null in layout. Actually, I'm not sure what it can do other than dying if |nsIFontMetrics| is null.
Attachment #140181 - Attachment is obsolete: true
I don't think GFX implementations should ever return a null font metrics unless there are no fonts available (or perhaps on out-of-memory, but probably not even then).
(In reply to comment #59) > BTW, can you attach the other trace you mentioned, Christian? It is in attachment 140258 [details], after the first trace. > > Also, I get multiple "Xft: locking error too many file unlocks" messages. > > Under what condition? With or without the patch applied? Or, did you get this > message only after making all your font unreadable (chmod go-r)? With the patch applied, and I saw them only after making the fonts unreadable.
re: comment #62 Oh, you're right. My latest patch makes |nsIFontMetrics->Init| fail and return an error code when 'face' is null (, which can occur in situations as described in comment #44). I have little idea why nsIFontMetrics itself is null in attachment 140258 [details].
Some reports a crash when a requested ttf font does not exist: bug 225892, bug 237814. Dup of this one?
*** Bug 255856 has been marked as a duplicate of this bug. ***
*** Bug 262107 has been marked as a duplicate of this bug. ***
*** Bug 263422 has been marked as a duplicate of this bug. ***
I think bug 180309 covers the issues for which this was reopened.
Depends on: 180309
Hopefully fixed by most recent fix to bug 180309.
*** Bug 277735 has been marked as a duplicate of this bug. ***
WRT comment 69: bug 180309 comment 29 states that these are two different bugs. I had this bug here today with my thunderbird 1.0. strace showed me that it tried to access /usr/X11R6/lib/X11/fonts/windows/tahoma.ttf which I had copied from a NTFS mount and which was mode 0400. If bug 180309 is indeed the same as this, its subject should be changed to incluse TTFs as well as FONs.
*** Bug 271825 has been marked as a duplicate of this bug. ***
The most recent fix to bug 180309 went in *after* Thunderbird 1.0, so comment 72 does not in any way contradict comment 69 or comment 70.
I haven't found any comments that suggest this isn't a duplicate. *** This bug has been marked as a duplicate of 180309 ***
Status: REOPENED → RESOLVED
Closed: 21 years ago20 years ago
No longer depends on: 180309
Resolution: --- → DUPLICATE
Comment on attachment 140288 [details] [diff] [review] patch : make sure FT_Face is not null dbaron, bug 331077 comment 0 is a comment claiming this isn't a duplicate (i would rather it have been added to this bug w/ a request to reopen, but ...)
Attachment #140288 - Flags: review?(dbaron)
Comment on attachment 140288 [details] [diff] [review] patch : make sure FT_Face is not null This looks OK, except that you're changing what's checked against 0 -- from design units to pixels. And something that's nonzero in design units could be zero in pixels -- and for these tiny values, might be.
Attachment #140288 - Flags: review?(dbaron) → review-
I'd much rather it be done there, though...
Comment on attachment 140288 [details] [diff] [review] patch : make sure FT_Face is not null Er, oops, I misread the old code; it's not changing that.
Attachment #140288 - Flags: review- → review+
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
*** Bug 331077 has been marked as a duplicate of this bug. ***
Attached patch patch : make sure FT_Face is not null (obsolete) (deleted) — Splinter Review
jshin's patch merged to trunk
Assignee: blizzard → dbaron
Attachment #140288 - Attachment is obsolete: true
Status: REOPENED → ASSIGNED
Attachment #217599 - Flags: review+
Whiteboard: [patch]
Attachment #217599 - Flags: superreview?(bryner)
Attachment #217599 - Flags: superreview?(bryner) → superreview+
gfxPangoFont::GetMetrics presumably needs similar changes...
Comment on attachment 217599 [details] [diff] [review] patch : make sure FT_Face is not null Actually, null-checking face->size in some places but not others isn't very useful...
Attachment #217599 - Flags: review+ → review-
Attached patch make sure FT_Face is not null (deleted) — Splinter Review
Actually, lets just null-check the things that are known to potentially return null.
Attachment #217599 - Attachment is obsolete: true
Attachment #217629 - Flags: superreview?(bryner)
Attachment #217629 - Flags: review?(vladimir)
Attachment #217629 - Flags: approval-branch-1.8.1?(bryner)
Attachment #217629 - Flags: superreview?(bryner)
Attachment #217629 - Flags: superreview+
Attachment #217629 - Flags: approval-branch-1.8.1?(bryner)
Attachment #217629 - Flags: approval-branch-1.8.1+
Comment on attachment 217629 [details] [diff] [review] make sure FT_Face is not null bryner, could you change your sr to an r+sr?
Attachment #217629 - Flags: review?(vladimir) → review?(bryner)
Comment on attachment 217629 [details] [diff] [review] make sure FT_Face is not null This patch is basically just a nullcheck to fix a topcrash, which I should have left on bug 331077, but decided to put here since it's based on jshin's patch here.
Attachment #217629 - Flags: approval1.8.0.3?
Attachment #217629 - Flags: review?(bryner) → review+
Checked in to trunk and MOZILLA_1_8_BRANCH.
Status: ASSIGNED → RESOLVED
Closed: 20 years ago19 years ago
Resolution: --- → FIXED
Blocks: 331077
Comment on attachment 217629 [details] [diff] [review] make sure FT_Face is not null approved for 1.8.0 branch, a=dveditz for drivers.
Attachment #217629 - Flags: approval1.8.0.3? → approval1.8.0.3+
Fix checked in to MOZILLA_1_8_0_BRANCH.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: