Skip to content

Commit

Permalink
Date: Sat, 2 Feb 2008 22:08:05 +0100
Browse files Browse the repository at this point in the history
From: Marcus von Appen
To: sdl@lists.libsdl.org
Subject: [SDL] [Patch] SDL-1.2 SDL_revcpy() asm patch for the cld flag

Hi,

as reported through the FreeBSD bug tracking system in SDL 1.2.13 (and
in the 1.2 branch, if I see that correctly) the SDL_revcpy() macro sets
the direction flag (std), but does not clear it afterwards (cld), which
is wrong according to the GCC and SYS V specs.  This can cause some
weird side effects, which in turn can lead to memory corruption.

You can read the full report with a detailed description and test
program at http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/120052

Attached is the submitted patch, which fixes the issue.

Regards
Marcus
  • Loading branch information
icculus committed Feb 4, 2008
1 parent 0eee8d8 commit 89d4105
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions include/SDL_stdinc.h
Expand Up @@ -331,6 +331,7 @@ do { \
__asm__ __volatile__ ( \
"std\n\t" \
"rep ; movsl\n\t" \
"cld\n\t" \
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
: "0" (n >> 2), \
"1" (dstp+(n-4)), "2" (srcp+(n-4)) \
Expand Down

0 comments on commit 89d4105

Please sign in to comment.