mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-08 21:00:05 +02:00
SDL3: patch GetModeList potential bogus free (#13613)
This commit is contained in:
@@ -6,7 +6,7 @@ software, emulators, and popular games."
|
||||
HOMEPAGE="https://www.libsdl.org/"
|
||||
COPYRIGHT="1997-2025 Sam Lantinga"
|
||||
LICENSE="Zlib"
|
||||
REVISION="1"
|
||||
REVISION="2"
|
||||
SOURCE_URI="https://www.libsdl.org/release/SDL3-$portVersion.tar.gz"
|
||||
CHECKSUM_SHA256="1330671214d146f8aeb1ed399fc3e081873cdb38b5189d1f8bb6ab15bbc04211"
|
||||
PATCHES="libsdl3-$portVersion.patchset"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 73e260b8ae185d41adc293a22bc6cf261def5e43 Mon Sep 17 00:00:00 2001
|
||||
From 242f30e9ce08cd51c39b49ab354ab0274f019daa Mon Sep 17 00:00:00 2001
|
||||
From: Peppersawce <michaelpeppers89@yahoo.it>
|
||||
Date: Sat, 13 Dec 2025 17:56:10 +0100
|
||||
Subject: Make BUrl not 'ambiguous' again
|
||||
@@ -37,5 +37,54 @@ index e9e9376..5d194c8 100644
|
||||
if (rc != B_NO_ERROR) {
|
||||
return SDL_SetError("URL open failed (err=%d)", (int)rc);
|
||||
--
|
||||
2.51.0
|
||||
2.52.0
|
||||
|
||||
|
||||
From 02609cfd93c2e24b5db10092301be008ea203179 Mon Sep 17 00:00:00 2001
|
||||
From: erysdren <contact@erysdren.me>
|
||||
Date: Sun, 11 Jan 2026 03:46:54 -0600
|
||||
Subject: fix modelist potential bogus free
|
||||
|
||||
|
||||
diff --git a/src/video/haiku/SDL_bmodes.cc b/src/video/haiku/SDL_bmodes.cc
|
||||
index 7397145..0b640c2 100644
|
||||
--- a/src/video/haiku/SDL_bmodes.cc
|
||||
+++ b/src/video/haiku/SDL_bmodes.cc
|
||||
@@ -243,20 +243,23 @@ bool HAIKU_GetDisplayModes(SDL_VideoDevice *_this, SDL_VideoDisplay *display)
|
||||
display_mode this_bmode;
|
||||
display_mode *bmodes;
|
||||
uint32 count, i;
|
||||
+ bool result = false;
|
||||
|
||||
// Get graphics-hardware supported modes
|
||||
- bscreen.GetModeList(&bmodes, &count);
|
||||
- bscreen.GetMode(&this_bmode);
|
||||
-
|
||||
- for (i = 0; i < count; ++i) {
|
||||
- // FIXME: Apparently there are errors with colorspace changes
|
||||
- if (bmodes[i].space == this_bmode.space) {
|
||||
- _BDisplayModeToSdlDisplayMode(&bmodes[i], &mode);
|
||||
- SDL_AddFullscreenDisplayMode(display, &mode);
|
||||
- }
|
||||
+ if (bscreen.GetModeList(&bmodes, &count) == B_OK) {
|
||||
+ if (bscreen.GetMode(&this_bmode) == B_OK) {
|
||||
+ for (i = 0; i < count; ++i) {
|
||||
+ // FIXME: Apparently there are errors with colorspace changes
|
||||
+ if (bmodes[i].space == this_bmode.space) {
|
||||
+ _BDisplayModeToSdlDisplayMode(&bmodes[i], &mode);
|
||||
+ SDL_AddFullscreenDisplayMode(display, &mode);
|
||||
+ }
|
||||
+ }
|
||||
+ result = true;
|
||||
+ }
|
||||
+ free(bmodes); // This should NOT be SDL_free()
|
||||
}
|
||||
- free(bmodes); // This should NOT be SDL_free()
|
||||
- return true;
|
||||
+ return result;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user