This service will be undergoing maintenance at 00:00 UTC, 2016-09-28. It is expected to last about 1 hours
Bug 678569 - SDL_BlitCopyOverlap assumes memcpy operates in order while SSE3 version operates from back to front
SDL_BlitCopyOverlap assumes memcpy operates in order while SSE3 version opera...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: SDL (Show other bugs)
6.1
x86_64 Linux
low Severity medium
: rc
: ---
Assigned To: Petr Pisar
Lukas Zachar
: Patch
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2011-02-18 08:25 EST by Petr Pisar
Modified: 2012-04-03 11:20 EDT (History)
4 users (show)

See Also:
Fixed In Version: SDL-1.2.14-3.el6
Doc Type: Bug Fix
Doc Text:
Cause Calling SDL_BlitSurface() on overlaping rectangles while running on SSE3 optimized standard C library. Consequence Rectangle bitmaps content is corrupted what produces garbage on the screen. Fix Internal SDL_BlitCopyOverlap() function has been fixed to copy bitmaps between overlapping areas correctly. Result SDL_BlitSurface() function performs correctly even if standard C library does not implement memcpy() safely for operation on overlapping memory areas.
Story Points: ---
Clone Of: 669844
Environment:
Last Closed: 2012-04-03 11:20:31 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
Fix from upstream (744 bytes, patch)
2011-02-18 08:27 EST, Petr Pisar
no flags Details | Diff
Reproducer (5.66 KB, text/plain)
2011-02-18 08:28 EST, Petr Pisar
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
SDL Simple Directmedia Layer 1090 None None None Never

  None (edit)
Description Petr Pisar 2011-02-18 08:25:51 EST
+++ This bug was initially created as a clone of Bug #669844 +++
[...]
Additional info:
I guess simple switching SDL_memcpy to memmove would fix the problem even tough that would add one extra branch for each line that is copied. But in end switching both branches to use simple memmove would be big gain as C library would have CPU specific optimizations that are missing from SDL.

[...]

Fix provided by upstream, SDL version in RHEL-6 is affected and fixable. Reproduction depends on glibc version (memcpy() implementation), CPU and memory mapping.
Comment 1 Petr Pisar 2011-02-18 08:27:35 EST
Created attachment 479499 [details]
Fix from upstream
Comment 2 Petr Pisar 2011-02-18 08:28:31 EST
Created attachment 479500 [details]
Reproducer

Requires new glibc, SSE3 CPU, and little of luck.
Comment 3 Petr Pisar 2011-02-18 08:39:50 EST
Current glibc-2.12-1.19.el6.x86_64 does not provided affected memcpy(), so the SDL bug does not exhibit now.
Comment 4 RHEL Product and Program Management 2011-07-05 19:41:59 EDT
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unfortunately unable to
address this request at this time. Red Hat invites you to
ask your support representative to propose this request, if
appropriate and relevant, in the next release of Red Hat
Enterprise Linux. If you would like it considered as an
exception in the current release, please ask your support
representative.
Comment 9 Petr Pisar 2012-01-10 12:16:48 EST
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause
    Calling SDL_BlitSurface() on overlaping rectangles while
    running on SSE3 optimized standard C library.
Consequence
    Rectangle bitmaps content is corrupted what produces
    garbage on the screen.
Fix
    Internal SDL_BlitCopyOverlap() function has been fixed to
    copy bitmaps between overlapping areas correctly.
Result
    SDL_BlitSurface() function performs correctly even if
    standard C library does not implement memcpy() safely for
    operation on overlapping memory areas.
Comment 11 errata-xmlrpc 2012-04-03 11:20:31 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-0446.html

Note You need to log in before you can comment on or make changes to this bug.