Update to 2.0.12

This commit is contained in:
zhiyi 2020-11-17 15:43:32 +08:00
parent a68f84a933
commit 90c574b5e8
6 changed files with 41 additions and 117 deletions

View File

@ -1,23 +0,0 @@
# HG changeset patch
# User Sam Lantinga <slouken@libsdl.org>
# Date 1564509600 25200
# Node ID e7ba650a643ad88dd8545511a18af1c9dcdfa2da
# Parent b810b78d32cc41a2384d0f14746ae889d443ffa7
Fixed bug 4538 - validate image size when loading BMP files
diff -r b810b78d32cc -r e7ba650a643a src/video/SDL_bmp.c
--- a/src/video/SDL_bmp.c Thu Jul 25 08:05:13 2019 -0500
+++ b/src/video/SDL_bmp.c Tue Jul 30 11:00:00 2019 -0700
@@ -226,6 +226,11 @@
SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR);
}
}
+ if (biWidth <= 0 || biHeight == 0) {
+ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight);
+ was_error = SDL_TRUE;
+ goto done;
+ }
if (biHeight < 0) {
topDown = SDL_TRUE;
biHeight = -biHeight;

BIN
SDL2-2.0.12.tar.gz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,15 @@
diff -up SDL2-2.0.9/include/SDL_opengl_glext.h.khrplatform SDL2-2.0.9/include/SDL_opengl_glext.h
--- SDL2-2.0.9/include/SDL_opengl_glext.h.khrplatform 2019-02-15 20:22:39.173773779 -0500
+++ SDL2-2.0.9/include/SDL_opengl_glext.h 2019-02-15 20:22:58.176399330 -0500
@@ -469,8 +469,9 @@ GLAPI void APIENTRY glBlendEquation (GLe
typedef long GLsizeiptr;
typedef long GLintptr;
#else
-typedef ptrdiff_t GLsizeiptr;
-typedef ptrdiff_t GLintptr;
+#include <KHR/khrplatform.h>
+typedef khronos_intptr_t GLintptr;
+typedef khronos_ssize_t GLsizeiptr;
#endif
#define GL_BUFFER_SIZE 0x8764
#define GL_BUFFER_USAGE 0x8765

View File

@ -1,25 +1,26 @@
Name: SDL2 Name: SDL2
Version: 2.0.8 Version: 2.0.12
Release: 10 Release: 1
Summary: Cross-platform multimedia library Summary: Cross-platform multimedia library
License: zlib and MIT License: zlib and MIT
URL: http://www.libsdl.org/ URL: http://www.libsdl.org/
Source0: http://www.libsdl.org/release/%{name}-%{version}.tar.gz Source0: http://www.libsdl.org/release/%{name}-%{version}.tar.gz
Source1: SDL_config.h Source1: SDL_config.h
Patch0000: multilib.patch Patch0000: multilib.patch
Patch0001: dynapi.patch Patch0001: SDL2-2.0.9-khrplatform.patch
Patch0002: CVE-2019-13616.patch
BuildRequires: alsa-lib-devel audiofile-devel mesa-libGL-devel BuildRequires: alsa-lib-devel audiofile-devel mesa-libGL-devel
BuildRequires: mesa-libGLU-devel mesa-libEGL-devel libglvnd-devel BuildRequires: mesa-libGLU-devel mesa-libEGL-devel libglvnd-devel
BuildRequires: libXext-devel libX11-devel libXi-devel libXrandr-devel BuildRequires: libXext-devel libX11-devel libXi-devel libXrandr-devel
BuildRequires: libXrender-devel libXScrnSaver-devel libusb-devel BuildRequires: libXrender-devel libXScrnSaver-devel libusb-devel
BuildRequires: libXinerama-devel libXcursor-devel systemd-devel BuildRequires: libXinerama-devel libXcursor-devel systemd-devel
BuildRequires: pkgconfig(libpulse-simple) BuildRequires: pkgconfig(libpulse-simple) pkgconfig(jack)
BuildRequires: pkgconfig(dbus-1) pkgconfig(ibus-1.0) BuildRequires: pkgconfig(dbus-1) pkgconfig(ibus-1.0)
BuildRequires: pkgconfig(wayland-client) pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-client) pkgconfig(wayland-egl)
BuildRequires: pkgconfig(wayland-cursor) pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-cursor) pkgconfig(wayland-protocols)
BuildRequires: pkgconfig(wayland-scanner) pkgconfig(xkbcommon) BuildRequires: pkgconfig(wayland-scanner) pkgconfig(xkbcommon)
BuildRequires: vulkan-devel mesa-libgbm-devel libdrm-devel BuildRequires: vulkan-devel mesa-libgbm-devel libdrm-devel
%description %description
Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed
to provide fast access to the graphics frame buffer and audio device. to provide fast access to the graphics frame buffer and audio device.
@ -37,9 +38,15 @@ to provide fast access to the graphics frame buffer and audio device. This
package provides the libraries, include files, and other resources needed for package provides the libraries, include files, and other resources needed for
developing SDL applications. developing SDL applications.
%package static
Summary: Static libraries for SDL2
%description static
Static libraries for SDL2.
%prep %prep
%autosetup -p1 %autosetup -p1
sed -i -e 's/.*AM_PATH_ESD.*//' configure.in sed -i -e 's/.*AM_PATH_ESD.*//' configure.ac
sed -i -e 's/\r//g' TODO.txt README.txt WhatsNew.txt BUGS.txt COPYING.txt CREDITS.txt README-SDL.txt sed -i -e 's/\r//g' TODO.txt README.txt WhatsNew.txt BUGS.txt COPYING.txt CREDITS.txt README-SDL.txt
%build %build
@ -51,31 +58,40 @@ sed -i -e 's/\r//g' TODO.txt README.txt WhatsNew.txt BUGS.txt COPYING.txt CREDIT
--enable-video-vulkan --enable-sse2=no \ --enable-video-vulkan --enable-sse2=no \
--enable-sse3=no --disable-rpath \ --enable-sse3=no --disable-rpath \
%make_build make %{?_smp_mflags}
%install %install
%make_install %make_install
mv %{buildroot}%{_includedir}/SDL2/SDL_config.h %{buildroot}%{_includedir}/SDL2/SDL_config-%{_arch}.h mv %{buildroot}%{_includedir}/SDL2/SDL_config.h %{buildroot}%{_includedir}/SDL2/SDL_config-%{_arch}.h
install -pm 0644 %{SOURCE1} %{buildroot}%{_includedir}/SDL2/SDL_config.h install -pm 0644 %{SOURCE1} %{buildroot}%{_includedir}/SDL2/SDL_config.h
rm -vf %{buildroot}%{_libdir}/*.la
%ldconfig_scriptlets
%files %files
%license COPYING.txt %license COPYING.txt
%doc BUGS.txt CREDITS.txt README-SDL.txt %doc BUGS.txt CREDITS.txt README-SDL.txt
%{_libdir}/lib*.so.* %{_libdir}/lib*.so.*
%exclude %{_libdir}/*.la
%files devel %files devel
%license COPYING.txt
%doc README.txt TODO.txt WhatsNew.txt %doc README.txt TODO.txt WhatsNew.txt
%{_bindir}/*-config %{_bindir}/*-config
%{_libdir}/lib*.so %{_libdir}/lib*.so
%{_libdir}/lib*.a
%{_libdir}/pkgconfig/sdl2.pc %{_libdir}/pkgconfig/sdl2.pc
%{_libdir}/cmake/SDL2/ %{_libdir}/cmake/SDL2/
%{_includedir}/SDL2 %{_includedir}/SDL2
%{_datadir}/aclocal/* %{_datadir}/aclocal/*
%files static
%license COPYING.txt
%{_libdir}/lib*.a
%changelog %changelog
* Mon Nov 16 2020 Zhiyi Weng <zhiyi@iscas.ac.cn> - 2.0.12-1
- Update to 2.0.12
* Wed Aug 6 2020 xinghe<xinghe1@huawei.com> - 2.0.8-10 * Wed Aug 6 2020 xinghe<xinghe1@huawei.com> - 2.0.8-10
- Type:bugfix - Type:bugfix
- ID:NA - ID:NA

View File

@ -1,84 +0,0 @@
# HG changeset patch
# User Ryan C. Gordon <icculus@icculus.org>
# Date 1526575846 14400
# Node ID 7babfecee045fac18d95e5936fede534ca54ed24
# Parent 9e46f3dd75fd2e85e0e3ebb8a77329bc74a16e70
dynapi: don't let system loader resolve the initializer to the wrong version.
Fixes problems launching Firewatch on Linux (which statically links SDL but
also dynamically loads a system-wide copy from a plugin shared library) with
a newer SDL build.
diff -r 9e46f3dd75fd -r 7babfecee045 src/dynapi/SDL_dynapi.c
--- a/src/dynapi/SDL_dynapi.c Fri May 11 09:37:00 2018 +0300
+++ b/src/dynapi/SDL_dynapi.c Thu May 17 12:50:46 2018 -0400
@@ -167,15 +167,10 @@
#error Write me.
#endif
-
-
-/* Here's the exported entry point that fills in the jump table. */
-/* Use specific types when an "int" might suffice to keep this sane. */
-typedef Sint32 (SDLCALL *SDL_DYNAPI_ENTRYFN)(Uint32 apiver, void *table, Uint32 tablesize);
-extern DECLSPEC Sint32 SDLCALL SDL_DYNAPI_entry(Uint32, void *, Uint32);
-
-Sint32
-SDL_DYNAPI_entry(Uint32 apiver, void *table, Uint32 tablesize)
+/* we make this a static function so we can call the correct one without the
+ system's dynamic linker resolving to the wrong version of this. */
+static Sint32
+initialize_jumptable(Uint32 apiver, void *table, Uint32 tablesize)
{
SDL_DYNAPI_jump_table *output_jump_table = (SDL_DYNAPI_jump_table *) table;
@@ -202,6 +197,18 @@
}
+/* Here's the exported entry point that fills in the jump table. */
+/* Use specific types when an "int" might suffice to keep this sane. */
+typedef Sint32 (SDLCALL *SDL_DYNAPI_ENTRYFN)(Uint32 apiver, void *table, Uint32 tablesize);
+extern DECLSPEC Sint32 SDLCALL SDL_DYNAPI_entry(Uint32, void *, Uint32);
+
+Sint32
+SDL_DYNAPI_entry(Uint32 apiver, void *table, Uint32 tablesize)
+{
+ return initialize_jumptable(apiver, table, tablesize);
+}
+
+
/* Obviously we can't use SDL_LoadObject() to load SDL. :) */
/* Also obviously, we never close the loaded library. */
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
@@ -260,7 +267,7 @@
SDL_InitDynamicAPILocked(void)
{
const char *libname = SDL_getenv_REAL("SDL_DYNAMIC_API");
- SDL_DYNAPI_ENTRYFN entry = SDL_DYNAPI_entry; /* funcs from here by default. */
+ SDL_DYNAPI_ENTRYFN entry = NULL; /* funcs from here by default. */
if (libname) {
entry = (SDL_DYNAPI_ENTRYFN) get_sdlapi_entry(libname, "SDL_DYNAPI_entry");
@@ -268,16 +275,15 @@
/* !!! FIXME: fail to startup here instead? */
/* !!! FIXME: definitely warn user. */
/* Just fill in the function pointers from this library. */
- entry = SDL_DYNAPI_entry;
}
}
- if (entry(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table)) < 0) {
+ if (!entry || (entry(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table)) < 0)) {
/* !!! FIXME: fail to startup here instead? */
/* !!! FIXME: definitely warn user. */
/* Just fill in the function pointers from this library. */
- if (entry != SDL_DYNAPI_entry) {
- if (!SDL_DYNAPI_entry(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table))) {
+ if (!entry) {
+ if (!initialize_jumptable(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table))) {
/* !!! FIXME: now we're screwed. Should definitely abort now. */
}
}