From 2747162d9ab6fcb850991434eed9e109e543eebd Mon Sep 17 00:00:00 2001
From: Jason Bobier <[EMAIL REDACTED]>
Date: Thu, 17 Sep 2026 19:35:27 +0200
Subject: [PATCH] Fixed posix_spawnp usage (#16336)
---
src/process/posix/SDL_posixprocess.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/process/posix/SDL_posixprocess.c b/src/process/posix/SDL_posixprocess.c
index 97be479d4d3ec..80fc31d1a000b 100644
--- a/src/process/posix/SDL_posixprocess.c
+++ b/src/process/posix/SDL_posixprocess.c
@@ -355,10 +355,8 @@ bool SDL_SYS_CreateProcessWithProperties(SDL_Process *process, SDL_PropertiesID
case 0:
// Detach from the terminal and launch the process
setsid();
- if (posix_spawnp(&data->pid, args[0], &fa, &attr, args, envp) != 0) {
- _exit(errno);
- }
- _exit(0);
+ int result = posix_spawnp(&data->pid, args[0], &fa, &attr, args, envp);
+ _exit(result);
default:
if (waitpid(pid, &status, 0) < 0) {
@@ -372,8 +370,9 @@ bool SDL_SYS_CreateProcessWithProperties(SDL_Process *process, SDL_PropertiesID
break;
}
} else {
- if (posix_spawnp(&data->pid, args[0], &fa, &attr, args, envp) != 0) {
- SDL_SetError("posix_spawn() failed: %s", strerror(errno));
+ int result = posix_spawnp(&data->pid, args[0], &fa, &attr, args, envp);
+ if (result != 0) {
+ SDL_SetError("posix_spawn() failed: %s", strerror(result));
goto posix_spawn_fail_all;
}
}