Simple DirectMedia Layer https://libsdl.org
Find a file
Stefan Schlosser 522716ed90 SDL_getenv.c: fix dynamic loading of environ symbol on FreeBSD
The current implementation uses the returned address of the `dlsym` function
directly to load the `environ` symbol. But this function doesn't return the
address to the symbol itself, instead it returns the address to the location
where the actual address is stored, i.e. it's an additional indirection.
Consequently, the implementation fails to load and process the environment
variables successfully.

One example where this error shows up is in the `Dialog API`: in an `X11`
environment, the `zenity` driver requires access to the user's `DISPLAY` and
`XAUTHORITY` environment variables. Because these variables aren't transfered
to the `zenity` process, no dialogs are shown. This can be exercised in the
`test/testdialog.c` testprogram.

The fix changes the indirection level of the `dlsym` call from `char **` to
`char ***`, does a `NULL`-check in case the call failed, and returns the
dereferenced actual adress to the `environ` symbol.

(cherry picked from commit 10458f2cac)
2025-07-30 07:06:54 -07:00
.github ci+n3ds: avoid apt-get package manager 2025-07-26 16:06:36 +02:00
android-project Updated to version 3.2.19 for development 2025-07-14 11:44:22 -07:00
build-scripts wikiheaders: Man pages should escape apostrophe chars. 2025-05-14 11:41:14 -04:00
cmake cmake: Android always needs a native HIDAPI implementation 2025-06-26 15:43:29 -07:00
docs README-macos.md: replace old API calls 2025-07-11 12:08:58 -07:00
examples examples: Use SDL_GetAudioStreamQueued, not SDL_GetAudioStreamAvailable. 2025-02-27 11:46:56 -05:00
include Update SDL_clipboard.h 2025-07-28 11:59:34 -07:00
src SDL_getenv.c: fix dynamic loading of environ symbol on FreeBSD 2025-07-30 07:06:54 -07:00
test Add support for non-constrained and non-grabbing popups 2025-07-11 14:26:51 -04:00
VisualC Cocoa metal layers need their size updated before renderer updates 2025-02-24 15:37:13 -08:00
VisualC-GDK GDK: Handle ProjectDir with space 2025-04-25 15:01:07 -07:00
wayland-protocols wayland: Add color manager protocol support 2025-02-17 11:31:12 -05:00
Xcode Updated to version 3.2.19 for development 2025-07-14 11:44:22 -07:00
.clang-format Add 'wl_list_for_each_safe' to the clang-format macro list 2024-03-14 10:22:23 -04:00
.clang-tidy Fix size of memcpy in SDL_AudioDeviceFormatChangedAlreadyLocked 2023-08-05 14:14:45 -04:00
.editorconfig .editorconfig: Remove excess apostrophe at *.cocci 2024-06-16 09:18:17 -07:00
.gitignore Allow in-tree build 2024-10-30 00:04:17 +01:00
.wikiheaders-options .wikiheaders-options: Removed wikipreamble setting. 2025-01-24 01:53:51 -05:00
Android.mk io: Renamed src/file to src/io 2025-01-16 08:18:40 -05:00
BUGS.txt Added a Discord link to BUGS.txt 2025-01-13 16:42:50 -08:00
CMakeLists.txt Updated to version 3.2.19 for development 2025-07-14 11:44:22 -07:00
CREDITS.md Updated the credits for SDL 3.0 2025-01-13 16:42:50 -08:00
INSTALL.md Add a link to docs/INTRO-mingw.md 2025-03-06 16:26:15 -08:00
LICENSE.txt Updated copyright for 2025 2025-01-01 07:45:52 -08:00
README.md Updating documentation for the 3.2.0 release 2025-01-15 20:38:16 -08:00
WhatsNew.txt Added SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT 2025-03-05 09:13:10 -08:00

Simple DirectMedia Layer (SDL for short) is a cross-platform library designed to make it easy to write multi-media software, such as games and emulators.

You can find the latest release and additional information at: https://www.libsdl.org/

Installation instructions and a quick introduction is available in INSTALL.md

This library is distributed under the terms of the zlib license, available in LICENSE.txt.

Enjoy!

Sam Lantinga (slouken@libsdl.org)