Simple DirectMedia Layer https://libsdl.org
Find a file
Stefan Schlosser 10458f2cac 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.
2025-07-30 07:06:25 -07:00
.github ci+n3ds: avoid apt-get package manager 2025-07-26 15:38:08 +02:00
android-project use SDL style - else on same line as closing brace 2025-05-20 17:12:01 -07:00
build-scripts wikiheaders: Let each subproject specify how to find their property symbols. 2025-06-17 16:41:24 -04:00
cmake cmake: Android always needs a native HIDAPI implementation 2025-06-26 22:34:30 +00:00
docs Sync SDL3 wiki -> header 2025-07-30 03:04:38 +00:00
examples Restore support for the Nokia N-Gage (#12148) 2025-05-22 11:07:22 -07:00
include Sync SDL3 wiki -> header 2025-07-30 08:06:30 +00:00
src SDL_getenv.c: fix dynamic loading of environ symbol on FreeBSD 2025-07-30 07:06:25 -07:00
test Restyle message boxes and add icon support to them on X11. (#13267) 2025-07-28 09:23:38 -07:00
VisualC Implement SInput Device Support (#13343) 2025-07-15 18:35:47 -07:00
VisualC-GDK Implement SInput Device Support (#13343) 2025-07-15 18:35:47 -07:00
wayland-protocols wayland: Add support for the key repeat event (seat v10) 2025-07-06 11:28:04 -04:00
Xcode Implement SInput Device Support (#13343) 2025-07-15 18:35:47 -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: Let each subproject specify how to find their property symbols. 2025-06-17 16:41:24 -04:00
Android.mk [SDL3] Adding input and FFB support for Logitech G29(PS3) on hidapi (#11598) 2025-03-17 07:24:39 -07:00
BUGS.txt Added a Discord link to BUGS.txt 2025-01-13 16:42:50 -08:00
CMakeLists.txt cmake: remove /RTC1 from CXX flags when building with SDL_LIBC=OFF 2025-07-11 03:25:58 +02: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:25:17 -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:07:05 -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)