From 447ec3d2c360902aa648bec44b612a040248871e Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Sat, 22 Oct 2022 17:56:10 +0300
Subject: [PATCH] loadso, dlsym, SDL_LoadFunction: cleanup the underscored name
path.
- strlcpy was passed a wrong buffer length parameter. has worked so
far by luck.
- use memcpy instead of strlcpy for simplicity.
- 'append' has been a typo: should be 'prepend'.
---
src/loadso/dlopen/SDL_sysloadso.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/loadso/dlopen/SDL_sysloadso.c b/src/loadso/dlopen/SDL_sysloadso.c
index 7985ee7f9..56331a1f0 100644
--- a/src/loadso/dlopen/SDL_sysloadso.c
+++ b/src/loadso/dlopen/SDL_sysloadso.c
@@ -45,11 +45,11 @@ void *SDL_LoadFunction(void *handle, const char *name)
{
void *symbol = dlsym(handle, name);
if ( symbol == NULL ) {
- /* append an underscore for platforms that need that. */
- size_t len = 1+SDL_strlen(name)+1;
- char *_name = SDL_stack_alloc(char, len);
+ /* prepend an underscore for platforms that need that. */
+ size_t len = SDL_strlen(name)+1;
+ char *_name = SDL_stack_alloc(char, len+1);
_name[0] = '_';
- SDL_strlcpy(&_name[1], name, len);
+ SDL_memcpy(&_name[1], name, len);
symbol = dlsym(handle, _name);
SDL_stack_free(_name);
if ( symbol == NULL ) {