Bug #354175 involves a program that is affected by this. Applying the upstream patch to media-libs/libsdl-1.2.14-r5 resolves it. The following commands can be used to test the patch:
ebuild $(equery which media-libs/libsdl-1.2.14-r5) prepare
cd /var/tmp/portage/media-libs/libsdl-1.2.14-r5/work/SDL-1.2.14
wget -O - http://bugzilla.libsdl.org/attachment.cgi?id=574 | patch --dry-run -p1
ebuild $(equery which media-libs/libsdl-1.2.14-r5) merge
The other ebuild versions, including the media-libs/libsdl-1.2.13-r1 ebuild used by stable, are also affected. The following commands can be used to test the patch with media-libs/libsdl-1.2.13-r1:
ebuild $(equery which media-libs/libsdl-1.2.13-r1) prepare
cd /var/tmp/portage/media-libs/libsdl-1.2.13-r1/work/SDL-1.2.13
wget -O - http://bugzilla.libsdl.org/attachment.cgi?id=574 | patch --dry-run -p1
ebuild $(equery which media-libs/libsdl-1.2.13-r1) merge
The reason we are seeing this issue in programs that rely on libsdl now is because of a change to glibc's memcpy() function late last year. The old implementation allowed programs to call memcpy() on overlapping regions. The new implementation copies memory in reverse, which broke any code that relied on the old implementation. The assumption that memcpy() works between overlapping regions of memory is illegal under ANSI C. There is a fairly lengthy bug report at the Fedora Linux bug tracker about this where Linus Torvalds commented on the issue:
I recommend inserting media-libs/libsdl-1.2.13-r2 and media-libs/libsdl-1.2.14-r6 into the portage tree with this patch. I also strongly recommend removing the existing ebuilds from the portage tree.
There is an upstream bug report regarding this that contains a patch:
http:// bugzilla. libsdl. org/show_ bug.cgi? id=1090
Bug #354175 involves a program that is affected by this. Applying the upstream patch to media-libs/ libsdl- 1.2.14- r5 resolves it. The following commands can be used to test the patch:
ebuild $(equery which media-libs/ libsdl- 1.2.14- r5) prepare portage/ media-libs/ libsdl- 1.2.14- r5/work/ SDL-1.2. 14 bugzilla. libsdl. org/attachment. cgi?id= 574 | patch --dry-run -p1 libsdl- 1.2.14- r5) merge
cd /var/tmp/
wget -O - http://
ebuild $(equery which media-libs/
The other ebuild versions, including the media-libs/ libsdl- 1.2.13- r1 ebuild used by stable, are also affected. The following commands can be used to test the patch with media-libs/ libsdl- 1.2.13- r1:
ebuild $(equery which media-libs/ libsdl- 1.2.13- r1) prepare portage/ media-libs/ libsdl- 1.2.13- r1/work/ SDL-1.2. 13 bugzilla. libsdl. org/attachment. cgi?id= 574 | patch --dry-run -p1 libsdl- 1.2.13- r1) merge
cd /var/tmp/
wget -O - http://
ebuild $(equery which media-libs/
The reason we are seeing this issue in programs that rely on libsdl now is because of a change to glibc's memcpy() function late last year. The old implementation allowed programs to call memcpy() on overlapping regions. The new implementation copies memory in reverse, which broke any code that relied on the old implementation. The assumption that memcpy() works between overlapping regions of memory is illegal under ANSI C. There is a fairly lengthy bug report at the Fedora Linux bug tracker about this where Linus Torvalds commented on the issue:
https:/ /bugzilla. redhat. com/show_ bug.cgi? id=638477
I recommend inserting media-libs/ libsdl- 1.2.13- r2 and media-libs/ libsdl- 1.2.14- r6 into the portage tree with this patch. I also strongly recommend removing the existing ebuilds from the portage tree.