Fixed some accidental uses of external C runtime functions

main
Sam Lantinga 2021-09-22 09:06:45 -07:00
parent 5d455cabf9
commit 345c161feb
10 changed files with 47 additions and 45 deletions

View File

@ -113,11 +113,11 @@ LoadNASLibrary(void)
/* Copy error string so we can use it in a new SDL_SetError(). */ /* Copy error string so we can use it in a new SDL_SetError(). */
const char *origerr = SDL_GetError(); const char *origerr = SDL_GetError();
const size_t len = SDL_strlen(origerr) + 1; const size_t len = SDL_strlen(origerr) + 1;
char *err = (char *) alloca(len); char *err = SDL_stack_alloc(char, len);
SDL_strlcpy(err, origerr, len); SDL_strlcpy(err, origerr, len);
SDL_SetError("NAS: SDL_LoadObject('%s') failed: %s", nas_library, err);
SDL_stack_free(err);
retval = -1; retval = -1;
SDL_SetError("NAS: SDL_LoadObject('%s') failed: %s",
nas_library, err);
} else { } else {
retval = load_nas_syms(); retval = load_nas_syms();
if (retval < 0) { if (retval < 0) {

View File

@ -386,7 +386,7 @@ SDL_EVDEV_kbd_init(void)
} }
/* Allow inhibiting keyboard mute with env. variable for debugging etc. */ /* Allow inhibiting keyboard mute with env. variable for debugging etc. */
if (getenv("SDL_INPUT_LINUX_KEEP_KBD") == NULL) { if (SDL_getenv("SDL_INPUT_LINUX_KEEP_KBD") == NULL) {
/* Mute the keyboard so keystrokes only generate evdev events /* Mute the keyboard so keystrokes only generate evdev events
* and do not leak through to the console * and do not leak through to the console
*/ */

View File

@ -245,7 +245,7 @@ SDL_GetBasePath(void)
if (retval != NULL) { if (retval != NULL) {
/* try to shrink buffer... */ /* try to shrink buffer... */
char *ptr = (char *) SDL_realloc(retval, strlen(retval) + 1); char *ptr = (char *) SDL_realloc(retval, SDL_strlen(retval) + 1);
if (ptr != NULL) if (ptr != NULL)
retval = ptr; /* oh well if it failed. */ retval = ptr; /* oh well if it failed. */
} }

View File

@ -166,7 +166,7 @@ SDL_SYS_HapticInit(void)
i = 0; i = 0;
for (j = 0; j < MAX_HAPTICS; ++j) { for (j = 0; j < MAX_HAPTICS; ++j) {
snprintf(path, PATH_MAX, joydev_pattern, i++); SDL_snprintf(path, PATH_MAX, joydev_pattern, i++);
MaybeAddDevice(path); MaybeAddDevice(path);
} }

View File

@ -621,7 +621,7 @@ static SDL_bool BReadDeviceInfo(SDL_DriverSwitch_Context *ctx)
ctx->m_eControllerType = (ESwitchDeviceInfoControllerType)reply->deviceInfo.ucDeviceType; ctx->m_eControllerType = (ESwitchDeviceInfoControllerType)reply->deviceInfo.ucDeviceType;
// Bytes 4-9: MAC address (big-endian) // Bytes 4-9: MAC address (big-endian)
memcpy(ctx->m_rgucMACAddress, reply->deviceInfo.rgucMACAddress, sizeof(ctx->m_rgucMACAddress)); SDL_memcpy(ctx->m_rgucMACAddress, reply->deviceInfo.rgucMACAddress, sizeof(ctx->m_rgucMACAddress));
return SDL_TRUE; return SDL_TRUE;
} }

View File

@ -482,7 +482,7 @@ HIDAPI_UpdateDiscovery()
if (buf.event.len > 0 && if (buf.event.len > 0 &&
!SDL_HIDAPI_discovery.m_bHaveDevicesChanged) { !SDL_HIDAPI_discovery.m_bHaveDevicesChanged) {
if (StrHasPrefix(buf.event.name, "hidraw") && if (StrHasPrefix(buf.event.name, "hidraw") &&
StrIsInteger(buf.event.name + strlen ("hidraw"))) { StrIsInteger(buf.event.name + SDL_strlen ("hidraw"))) {
SDL_HIDAPI_discovery.m_bHaveDevicesChanged = SDL_TRUE; SDL_HIDAPI_discovery.m_bHaveDevicesChanged = SDL_TRUE;
/* We found an hidraw change. We still continue to /* We found an hidraw change. We still continue to
* drain the inotify fd to avoid leaving old * drain the inotify fd to avoid leaving old
@ -494,7 +494,7 @@ HIDAPI_UpdateDiscovery()
remain -= len; remain -= len;
if (remain != 0) { if (remain != 0) {
memmove(&buf.storage[0], &buf.storage[len], remain); SDL_memmove(&buf.storage[0], &buf.storage[len], remain);
} }
} }
} }

View File

@ -529,7 +529,7 @@ LINUX_InotifyJoystickDetect(void)
while (remain > 0) { while (remain > 0) {
if (buf.event.len > 0) { if (buf.event.len > 0) {
if (StrHasPrefix(buf.event.name, "event") && if (StrHasPrefix(buf.event.name, "event") &&
StrIsInteger(buf.event.name + strlen ("event"))) { StrIsInteger(buf.event.name + SDL_strlen ("event"))) {
char path[PATH_MAX]; char path[PATH_MAX];
SDL_snprintf(path, SDL_arraysize(path), "/dev/input/%s", buf.event.name); SDL_snprintf(path, SDL_arraysize(path), "/dev/input/%s", buf.event.name);
@ -547,7 +547,7 @@ LINUX_InotifyJoystickDetect(void)
remain -= len; remain -= len;
if (remain != 0) { if (remain != 0) {
memmove (&buf.storage[0], &buf.storage[len], remain); SDL_memmove (&buf.storage[0], &buf.storage[len], remain);
} }
} }
} }

View File

@ -44,14 +44,17 @@ static const char *sys_class_power_supply_path = "/sys/class/power_supply";
static int static int
open_power_file(const char *base, const char *node, const char *key) open_power_file(const char *base, const char *node, const char *key)
{ {
const size_t pathlen = strlen(base) + strlen(node) + strlen(key) + 3; int fd;
char *path = (char *) alloca(pathlen); const size_t pathlen = SDL_strlen(base) + SDL_strlen(node) + SDL_strlen(key) + 3;
char *path = SDL_stack_alloc(char, pathlen);
if (path == NULL) { if (path == NULL) {
return -1; /* oh well. */ return -1; /* oh well. */
} }
snprintf(path, pathlen, "%s/%s/%s", base, node, key); snprintf(path, pathlen, "%s/%s/%s", base, node, key);
return open(path, O_RDONLY | O_CLOEXEC); fd = open(path, O_RDONLY | O_CLOEXEC);
SDL_stack_free(path);
return fd;
} }
@ -146,20 +149,20 @@ check_proc_acpi_battery(const char * node, SDL_bool * have_battery,
ptr = &state[0]; ptr = &state[0];
while (make_proc_acpi_key_val(&ptr, &key, &val)) { while (make_proc_acpi_key_val(&ptr, &key, &val)) {
if (strcmp(key, "present") == 0) { if (SDL_strcmp(key, "present") == 0) {
if (strcmp(val, "yes") == 0) { if (SDL_strcmp(val, "yes") == 0) {
*have_battery = SDL_TRUE; *have_battery = SDL_TRUE;
} }
} else if (strcmp(key, "charging state") == 0) { } else if (SDL_strcmp(key, "charging state") == 0) {
/* !!! FIXME: what exactly _does_ charging/discharging mean? */ /* !!! FIXME: what exactly _does_ charging/discharging mean? */
if (strcmp(val, "charging/discharging") == 0) { if (SDL_strcmp(val, "charging/discharging") == 0) {
charge = SDL_TRUE; charge = SDL_TRUE;
} else if (strcmp(val, "charging") == 0) { } else if (SDL_strcmp(val, "charging") == 0) {
charge = SDL_TRUE; charge = SDL_TRUE;
} }
} else if (strcmp(key, "remaining capacity") == 0) { } else if (SDL_strcmp(key, "remaining capacity") == 0) {
char *endptr = NULL; char *endptr = NULL;
const int cvt = (int) strtol(val, &endptr, 10); const int cvt = (int) SDL_strtol(val, &endptr, 10);
if (*endptr == ' ') { if (*endptr == ' ') {
remaining = cvt; remaining = cvt;
} }
@ -168,9 +171,9 @@ check_proc_acpi_battery(const char * node, SDL_bool * have_battery,
ptr = &info[0]; ptr = &info[0];
while (make_proc_acpi_key_val(&ptr, &key, &val)) { while (make_proc_acpi_key_val(&ptr, &key, &val)) {
if (strcmp(key, "design capacity") == 0) { if (SDL_strcmp(key, "design capacity") == 0) {
char *endptr = NULL; char *endptr = NULL;
const int cvt = (int) strtol(val, &endptr, 10); const int cvt = (int) SDL_strtol(val, &endptr, 10);
if (*endptr == ' ') { if (*endptr == ' ') {
maximum = cvt; maximum = cvt;
} }
@ -225,8 +228,8 @@ check_proc_acpi_ac_adapter(const char * node, SDL_bool * have_ac)
ptr = &state[0]; ptr = &state[0];
while (make_proc_acpi_key_val(&ptr, &key, &val)) { while (make_proc_acpi_key_val(&ptr, &key, &val)) {
if (strcmp(key, "state") == 0) { if (SDL_strcmp(key, "state") == 0) {
if (strcmp(val, "on-line") == 0) { if (SDL_strcmp(val, "on-line") == 0) {
*have_ac = SDL_TRUE; *have_ac = SDL_TRUE;
} }
} }
@ -315,7 +318,7 @@ static SDL_bool
int_string(char *str, int *val) int_string(char *str, int *val)
{ {
char *endptr = NULL; char *endptr = NULL;
*val = (int) strtol(str, &endptr, 0); *val = (int) SDL_strtol(str, &endptr, 0);
return ((*str != '\0') && (*endptr == '\0')); return ((*str != '\0') && (*endptr == '\0'));
} }
@ -377,8 +380,8 @@ SDL_GetPowerInfo_Linux_proc_apm(SDL_PowerState * state,
if (!next_string(&ptr, &str)) { /* remaining battery life percent */ if (!next_string(&ptr, &str)) { /* remaining battery life percent */
return SDL_FALSE; return SDL_FALSE;
} }
if (str[strlen(str) - 1] == '%') { if (str[SDL_strlen(str) - 1] == '%') {
str[strlen(str) - 1] = '\0'; str[SDL_strlen(str) - 1] = '\0';
} }
if (!int_string(str, &battery_percent)) { if (!int_string(str, &battery_percent)) {
return SDL_FALSE; return SDL_FALSE;
@ -392,7 +395,7 @@ SDL_GetPowerInfo_Linux_proc_apm(SDL_PowerState * state,
if (!next_string(&ptr, &str)) { /* remaining battery life time units */ if (!next_string(&ptr, &str)) { /* remaining battery life time units */
return SDL_FALSE; return SDL_FALSE;
} else if (strcmp(str, "min") == 0) { } else if (SDL_strcmp(str, "min") == 0) {
battery_time *= 60; battery_time *= 60;
} }

View File

@ -141,14 +141,12 @@ static int get_dricount(void)
if (!(stat(KMSDRM_DRI_PATH, &sb) == 0 if (!(stat(KMSDRM_DRI_PATH, &sb) == 0
&& S_ISDIR(sb.st_mode))) { && S_ISDIR(sb.st_mode))) {
printf("The path %s cannot be opened or is not available\n", /*printf("The path %s cannot be opened or is not available\n", KMSDRM_DRI_PATH);*/
KMSDRM_DRI_PATH);
return 0; return 0;
} }
if (access(KMSDRM_DRI_PATH, F_OK) == -1) { if (access(KMSDRM_DRI_PATH, F_OK) == -1) {
printf("The path %s cannot be opened\n", /*printf("The path %s cannot be opened\n", KMSDRM_DRI_PATH);*/
KMSDRM_DRI_PATH);
return 0; return 0;
} }

View File

@ -437,18 +437,18 @@ SDL_bool KMSDRM_Vulkan_CreateSurface(_THIS,
} }
/* Get the list of displays supported by this plane. */ /* Get the list of displays supported by this plane. */
supported_displays = (VkDisplayKHR*)malloc(sizeof(VkDisplayKHR) * supported_displays_count); supported_displays = (VkDisplayKHR*)SDL_malloc(sizeof(VkDisplayKHR) * supported_displays_count);
vkGetDisplayPlaneSupportedDisplaysKHR(gpu, i, vkGetDisplayPlaneSupportedDisplaysKHR(gpu, i,
&supported_displays_count, supported_displays); &supported_displays_count, supported_displays);
/* The plane must be bound to the chosen display, or not in use. /* The plane must be bound to the chosen display, or not in use.
If none of these is true, iterate to another plane. */ If none of these is true, iterate to another plane. */
if (!((plane_props[i].currentDisplay == display) || if (!((plane_props[i].currentDisplay == display) ||
(plane_props[i].currentDisplay == VK_NULL_HANDLE))) (plane_props[i].currentDisplay == VK_NULL_HANDLE)))
continue; continue;
/* Iterate the list of displays supported by this plane /* Iterate the list of displays supported by this plane
in order to find out if the chosen display is among them. */ in order to find out if the chosen display is among them. */
plane_supports_display = SDL_FALSE; plane_supports_display = SDL_FALSE;
for (j = 0; j < supported_displays_count; j++) { for (j = 0; j < supported_displays_count; j++) {
if (supported_displays[j] == display) { if (supported_displays[j] == display) {
@ -457,9 +457,10 @@ SDL_bool KMSDRM_Vulkan_CreateSurface(_THIS,
} }
} }
/* Free the list of displays supported by this plane. */ /* Free the list of displays supported by this plane. */
if (supported_displays) if (supported_displays) {
free(supported_displays); SDL_free(supported_displays);
}
/* If the display is not supported by this plane, iterate to the next plane. */ /* If the display is not supported by this plane, iterate to the next plane. */
if (!plane_supports_display) { if (!plane_supports_display) {
@ -469,9 +470,9 @@ SDL_bool KMSDRM_Vulkan_CreateSurface(_THIS,
/* Want a plane that supports the alpha mode we have chosen. */ /* Want a plane that supports the alpha mode we have chosen. */
vkGetDisplayPlaneCapabilitiesKHR(gpu, display_mode, i, &plane_caps); vkGetDisplayPlaneCapabilitiesKHR(gpu, display_mode, i, &plane_caps);
if (plane_caps.supportedAlpha == alpha_mode) { if (plane_caps.supportedAlpha == alpha_mode) {
/* Yep, this plane is alright. */ /* Yep, this plane is alright. */
plane = i; plane = i;
break; break;
} }
} }