Bug 538044 (examples, fonty.py, from)

Summary: fonty.py from pygame examples don't work
Product: [Fedora] Fedora Reporter: Łukasz Posadowski <mail>
Component: SDL_ttfAssignee: Thomas Janssen <thomasj>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 12CC: chris.stone, dev, hdegoede, thomasj
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: SDL_ttf-2.0.10-1.fc14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-08-23 22:02:53 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Fixes crash with big fonts none

Description Łukasz Posadowski 2009-11-17 12:09:48 UTC
Description of problem:
Pygame have problems displaying font in utf-8.

Version-Release number of selected component (if applicable):
Python 2.6.2
Pygame 1.8.1

or

Python 2.6.2
Pygame 1.9.1 (compiled and packaged)

or

Python 2.5.4 (compiled to /opt)
Pygame 1.9.1 (builded by python in /opt)

How reproducible:
always

Steps to Reproduce:
1. run "python fonty.py"
  
Actual results (this is a big one):
$ python fonty.py 
*** glibc detected *** python: double free or corruption (out): 0x09b2f0f8 ***
======= Backtrace: =========
/lib/libc.so.6[0xa09261]
/usr/lib/libSDL_ttf-2.0.so.0(+0x13b6)[0x9003b6]
/usr/lib/libSDL_ttf-2.0.so.0(+0x1432)[0x900432]
/usr/lib/python2.6/site-packages/pygame/font.so(+0x2262)[0x8c7262]
/usr/lib/libpython2.6.so.1.0(PyCFunction_Call+0x12a)[0x30b305a]
/usr/lib/libpython2.6.so.1.0(PyEval_EvalFrameEx+0x4403)[0x310f073]
/usr/lib/libpython2.6.so.1.0(PyEval_EvalFrameEx+0x533b)[0x310ffab]
/usr/lib/libpython2.6.so.1.0(PyEval_EvalCodeEx+0x7aa)[0x3110e4a]
/usr/lib/libpython2.6.so.1.0(PyEval_EvalCode+0x64)[0x3110fb4]
/usr/lib/libpython2.6.so.1.0[0x312c25c]
/usr/lib/libpython2.6.so.1.0(PyRun_FileExFlags+0x93)[0x312c323]
/usr/lib/libpython2.6.so.1.0(PyRun_SimpleFileExFlags+0xe1)[0x312d8c1]
/usr/lib/libpython2.6.so.1.0(PyRun_AnyFileExFlags+0x82)[0x312e162]
/usr/lib/libpython2.6.so.1.0(Py_Main+0xb95)[0x313abd5]
python(main+0x28)[0x80485c8]
/lib/libc.so.6(__libc_start_main+0xe6)[0x9b1bb6]
python[0x8048501]
======= Memory map: ========
00110000-00113000 r-xp 00000000 08:02 223569     /usr/lib/python2.6/lib-dynload/cStringIO.so
00113000-00114000 rw-p 00003000 08:02 223569     /usr/lib/python2.6/lib-dynload/cStringIO.so
00114000-0011a000 r-xp 00000000 08:02 168187     /usr/lib/python2.6/site-packages/pygame/display.so
0011a000-0011b000 rw-p 00005000 08:02 168187     /usr/lib/python2.6/site-packages/pygame/display.so
0011b000-0011d000 r-xp 00000000 08:02 168181     /usr/lib/python2.6/site-packages/pygame/bufferproxy.so
0011d000-0011e000 rw-p 00001000 08:02 168181     /usr/lib/python2.6/site-packages/pygame/bufferproxy.so
0011e000-00120000 r-xp 00000000 08:02 168227     /usr/lib/python2.6/site-packages/pygame/time.so
00120000-00121000 rw-p 00002000 08:02 168227     /usr/lib/python2.6/site-packages/pygame/time.so
00121000-00125000 r-xp 00000000 08:02 168204     /usr/lib/python2.6/site-packages/pygame/mask.so
00125000-00126000 rw-p 00004000 08:02 168204     /usr/lib/python2.6/site-packages/pygame/mask.so
00126000-0012d000 r-xp 00000000 08:02 223585     /usr/lib/python2.6/lib-dynload/operator.so
0012d000-0012f000 rw-p 00006000 08:02 223585     /usr/lib/python2.6/lib-dynload/operator.so
0012f000-00130000 r-xp 00000000 08:02 223529     /usr/lib/python2.6/lib-dynload/_bisectmodule.so
00130000-00131000 rw-p 00001000 08:02 223529     /usr/lib/python2.6/lib-dynload/_bisectmodule.so
00131000-00132000 r-xs 00000000 08:02 126376     /tmp/ffiHLu92c (deleted)
00133000-00138000 r-xp 00000000 08:02 168183     /usr/lib/python2.6/site-packages/pygame/color.so
00138000-00139000 rw-p 00004000 08:02 168183     /usr/lib/python2.6/site-packages/pygame/color.so
00139000-00183000 r-xp 00000000 08:02 168220     /usr/lib/python2.6/site-packages/pygame/surface.so
00183000-00184000 rw-p 0004a000 08:02 168220     /usr/lib/python2.6/site-packages/pygame/surface.so
00184000-0018f000 r-xp 00000000 08:02 344826     /usr/lib/libSDL_image-1.2.so.0.1.6
0018f000-00190000 rw-p 0000b000 08:02 344826     /usr/lib/libSDL_image-1.2.so.0.1.6
00190000-001a0000 rw-p 00000000 00:00 0 
001a0000-001c7000 r-xp 00000000 08:02 344685     /usr/lib/libpng12.so.0.39.0
001c7000-001c8000 rw-p 00026000 08:02 344685     /usr/lib/libpng12.so.0.39.0
001c8000-001ca000 r-xp 00000000 08:02 223547     /usr/lib/python2.6/lib-dynload/_heapq.so
001ca000-001cc000 rw-p 00002000 08:02 223547     /usr/lib/python2.6/lib-dynload/_heapq.so
001cc000-001ce000 r-xp 00000000 08:02 223545     /usr/lib/python2.6/lib-dynload/_functoolsmodule.so
001ce000-001cf000 rw-p 00001000 08:02 223545     /usr/lib/python2.6/lib-dynload/_functoolsmodule.so
001cf000-001d8000 r-xp 00000000 08:02 168209     /usr/lib/python2.6/site-packages/pygame/pixelarray.so
001d8000-001d9000 rw-p 00008000 08:02 168209     /usr/lib/python2.6/site-packages/pygame/pixelarray.so
001d9000-001db000 r-xp 00000000 08:02 168208     /usr/lib/python2.6/site-packages/pygame/overlay.so
001db000-001dc000 rw-p 00001000 08:02 168208     /usr/lib/python2.6/site-packages/pygame/overlay.so
001dc000-001df000 r-xp 00000000 08:02 168206     /usr/lib/python2.6/site-packages/pygame/mixer_music.so
001df000-001e0000 rw-p 00002000 08:02 168206     /usr/lib/python2.6/site-packages/pygame/mixer_music.so
001e0000-001e4000 r-xp 00000000 08:02 168217     /usr/lib/python2.6/site-packages/pygame/scrap.so
001e4000-001e5000 rw-p 00003000 08:02 168217     /usr/lib/python2.6/site-packages/pygame/scrap.so
001e5000-001e7000 r-xp 00000000 08:02 344686     /usr/lib/libXau.so.6.0.0
001e7000-001e8000 rw-p 00001000 08:02 344686     /usr/lib/libXau.so.6.0.0
001e8000-001ed000 r-xp 00000000 08:02 168177     /usr/lib/python2.6/site-packages/pygame/_numericsurfarray.so
001ed000-001ee000 rw-p 00004000 08:02 168177     /usr/lib/python2.6/site-packages/pygame/_numericsurfarray.so
001ee000-001f0000 r-xp 00000000 08:02 168109     /usr/lib/python2.6/site-packages/pygame/_numericsndarray.so
001f0000-001f1000 rw-p 00001000 08:02 168109     /usr/lib/python2.6/site-packages/pygame/_numericsndarray.so
001f1000-001f8000 r-xp 00000000 08:02 223562     /usr/lib/python2.6/lib-dynload/_struct.so
001f8000-001fa000 rw-p 00006000 08:02 223562     /usr/lib/python2.6/lib-dynload/_struct.so
001fa000-00210000 r-xp 00000000 08:02 395138     /usr/lib/python2.6/site-packages/numpy/core/_sort.so
00210000-00211000 rw-p 00016000 08:02 395138     /usr/lib/python2.6/site-packages/numpy/core/_sort.so
00211000-00215000 r-xp 00000000 08:02 223593     /usr/lib/python2.6/lib-dynload/stropmodule.so
00215000-00217000 rw-p 00004000 08:02 223593     /usr/lib/python2.6/lib-dynload/stropmodule.so
00217000-00237000 r-xp 00000000 08:02 344840     /usr/lib/libSDL_mixer-1.2.so.0.2.6
00237000-00240000 rw-p 0001f000 08:02 344840     /usr/lib/libSDL_mixer-1.2.so.0.2.6
00240000-00263000 rw-p 00000000 00:00 0 
00263000-00280000 r-xp 00000000 08:02 344687     /usr/lib/libxcb.so.1.1.0
00280000-00281000 rw-p 0001c000 08:02 344687     /usr/lib/libxcb.so.1.1.0
00281000-00287000 r-xp 00000000 08:02 395136     /usr/lib/python2.6/site-packages/numpy/core/_dotblas.so
00287000-00288000 rw-p 00005000 08:02 395136     /usr/lib/python2.6/site-packages/numpy/core/_dotblas.so
00288000-002a2000 r-xp 00000000 08:02 401533     /usr/lib/atlas/libptf77blas.so.3.0
002a2000-002a3000 rw-p 0001a000 08:02 401533     /usr/lib/atlas/libptf77blas.so.3.0
002a3000-002a8000 r-xp 00000000 08:02 223582     /usr/lib/python2.6/lib-dynload/mathmodule.so
002a8000-002aa000 rw-p 00004000 08:02 223582     /usr/lib/python2.6/lib-dynload/mathmodule.so
002ac000-002af000 r-xp 00000000 08:02 168180     /usr/lib/python2.6/site-packages/pygame/base.so
002af000-002b0000 rw-p 00002000 08:02 168180     /usr/lib/python2.6/site-packages/pygame/base.so
002b0000-002f4000 r-xp 00000000 08:02 395220     /usr/lib/python2.6/site-packages/numpy/core/umath.so
002f4000-002f7000 rw-p 00044000 08:02 395220     /usr/lib/python2.6/site-packages/numpy/core/umath.so
002f7000-002f8000 rw-p 00000000 00:00 0 
002f8000-00309000 r-xp 00000000 08:02 223568     /usr/lib/python2.6/lib-dynload/cPickle.so
00309000-0030a000 rw-p 00011000 08:02 223568     /usr/lib/python2.6/lib-dynload/cPickle.so
0030a000-0030e000 r-xp 00000000 08:02 395239     /usr/lib/python2.6/site-packages/numpy/lib/_compiled_base.so
0030e000-0030f000 rw-p 00003000 08:02 395239     /usr/lib/python2.6/site-packages/numpy/lib/_compiled_base.soPrzerwane

Expected results:
A pygame windows with some text.

Additional info:
Running this by random mix of Python 2.5/2.6 and Pygame 1.8/1.9 give me exactly the same result. Others examples (with fonts, but ASCII only) are OK.

Comment 1 Łukasz Posadowski 2009-11-23 14:57:12 UTC
So I finnaly go step by step with fonty.py example and got it:

font.set_underline(1)

This is the problem. If I change to:

font.set_underline(0)

all works fine. I belive that are other ways to make underline, but it's official example and should work.

I have confirmation, that on Windows problem doesn't exist. I'm wating for people with other Linux distros however.

Comment 2 Fedora Admin XMLRPC Client 2010-08-12 07:25:56 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 3 Jan Kaluža 2010-08-12 12:32:26 UTC
This is actually bug in SDL_ttf. It can be reproduced by rendering some text with big font size (usually more than 50pt, that depends on used font). Code which renders underline overwrites the memory if height of underline is bigger than 2 pixels.

I'm attaching patch which fixes this bug.

Comment 4 Jan Kaluža 2010-08-12 12:33:56 UTC
Created attachment 438425 [details]
Fixes crash with big fonts

Comment 5 Thomas Janssen 2010-08-12 14:01:18 UTC
I'm sorry. My bad. Update to 2.0.10, which fixes that one is on the way. Sorry sorry, i overlooked that update.

Comment 6 Fedora Update System 2010-08-12 14:40:03 UTC
SDL_ttf-2.0.10-1.fc14 has been submitted as an update for Fedora 14.
http://admin.fedoraproject.org/updates/SDL_ttf-2.0.10-1.fc14

Comment 7 Fedora Update System 2010-08-12 14:40:07 UTC
SDL_ttf-2.0.10-1.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/SDL_ttf-2.0.10-1.fc13

Comment 8 Fedora Update System 2010-08-12 14:40:12 UTC
SDL_ttf-2.0.10-1.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/SDL_ttf-2.0.10-1.fc12

Comment 9 Fedora Update System 2010-08-12 19:50:26 UTC
SDL_ttf-2.0.10-1.fc14 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update SDL_ttf'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/SDL_ttf-2.0.10-1.fc14

Comment 10 Łukasz Posadowski 2010-08-13 08:56:10 UTC
Yeah - problem is solved. Thanks for your work.

Comment 11 Fedora Update System 2010-08-23 22:02:48 UTC
SDL_ttf-2.0.10-1.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2010-08-23 22:03:35 UTC
SDL_ttf-2.0.10-1.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 13 Fedora Update System 2010-08-24 01:48:13 UTC
SDL_ttf-2.0.10-1.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2013-05-01 11:54:11 UTC
colorhug-client-0.2.0-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/colorhug-client-0.2.0-1.fc19

Comment 15 Fedora Update System 2015-07-14 16:49:06 UTC
python-astroid-1.3.6-3.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/python-astroid-1.3.6-3.fc22

Comment 16 Fedora Update System 2015-08-18 01:11:54 UTC
reposurgeon-3.28-1.fc23 has been submitted as an update for Fedora 23.
https://admin.fedoraproject.org/updates/reposurgeon-3.28-1.fc23

Comment 17 Fedora Update System 2015-08-18 01:13:33 UTC
reposurgeon-3.28-1.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/reposurgeon-3.28-1.fc22

Comment 18 Fedora Update System 2015-08-18 01:14:51 UTC
reposurgeon-3.28-1.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/reposurgeon-3.28-1.el7