From 3d415bc5d61e625189ccca6348ff1b70c469e45c Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sat, 22 Oct 2022 11:56:56 +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 e5abe85db..3b55a6e81 100644 --- a/src/loadso/dlopen/SDL_sysloadso.c +++ b/src/loadso/dlopen/SDL_sysloadso.c @@ -60,12 +60,12 @@ SDL_LoadFunction(void *handle, const char *name) { void *symbol = dlsym(handle, name); if (symbol == NULL) { - /* append an underscore for platforms that need that. */ + /* prepend an underscore for platforms that need that. */ SDL_bool isstack; - size_t len = 1 + SDL_strlen(name) + 1; - char *_name = SDL_small_alloc(char, len, &isstack); + size_t len = SDL_strlen(name) + 1; + char *_name = SDL_small_alloc(char, len + 1, &isstack); _name[0] = '_'; - SDL_strlcpy(&_name[1], name, len); + SDL_memcpy(&_name[1], name, len); symbol = dlsym(handle, _name); SDL_small_free(_name, isstack); if (symbol == NULL) {