Bug 825678
Summary: | SDL::App->new() on console framebuffer segfaults | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Petr Pisar <ppisar> | ||||||||||||||
Component: | perl-SDL | Assignee: | Hans de Goede <hdegoede> | ||||||||||||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||||
Priority: | unspecified | ||||||||||||||||
Version: | 17 | CC: | hdegoede, perl-devel, ppisar | ||||||||||||||
Target Milestone: | --- | ||||||||||||||||
Target Release: | --- | ||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||
OS: | Unspecified | ||||||||||||||||
Whiteboard: | |||||||||||||||||
Fixed In Version: | perl-SDL-2.540-2.fc18.x86_64 | Doc Type: | Bug Fix | ||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||
Clone Of: | Environment: | ||||||||||||||||
Last Closed: | 2013-07-04 09:58:36 UTC | Type: | Bug | ||||||||||||||
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
Petr Pisar
2012-05-28 08:17:10 UTC
Plain SDL works under root, but one must request current framebuffer resolution. It looks like a perl-SDL is unable to cope with unsupported resolution. Created attachment 678295 [details]
Test case
Reproducer: Querying screen width directly works both with X11 and with FB. Querying via SDL::App segfaults with FB only.
Created attachment 678299 [details]
Test case in C
This is equivalent program in C which works even on FB.
Created attachment 678300 [details]
Back-trace
This is back-trace of segfaulting SDL::App->width(). The segfault is due to NULL pointer dereference here.
int
SurfaceW ( surface )
SDL_Surface *surface
CODE:
→ RETVAL = surface->w;
OUTPUT:
RETVAL
Something clobbers the `surface' argument. No idea how is it possible.
Just noting F17 is still affected: $ rpm -q SDL perl-SDL perl SDL-1.2.14-16.fc17.x86_64 perl-SDL-2.2.6-6.fc17.x86_64 perl-5.14.3-220.fc17.x86_64 Created attachment 678316 [details]
Test case
Corrected perl test case (wrong height argument).
Created attachment 678331 [details]
Test case
Set depth explicitly to 0.
Problem is SDL::App::new() overries 0 depth to 16 which not suitable for my 32bpp FB. Then SDL_SetVideoMode() returns NULL, but SDL::App::new() stores and checks reference to NULL, which is never false.
Proposed fixes:
(1) The default SDL::App -depth should be 0, not 16.
(2) The check should be done on dereferenced value.
Created attachment 678879 [details]
Proposed fix
This message is a reminder that Fedora 16 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 16. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '16'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 16's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 16 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged to click on "Clone This Bug" and open it against that version of Fedora. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping Still broken in F17. This message is a reminder that Fedora 17 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 17. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '17'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 17's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 17 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior to Fedora 17's end of life. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. It does not segfault in F18 anymore. But it does not work either. I will file new bug report. |