mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +00:00
- Make strcpy_alloc a static function of mem_util.c
- Make sure we avoid strcpy as much as possible - preferring to use strlcpy instead
This commit is contained in:
parent
d7c2eba4fd
commit
bb3e7fad66
50
retroarch.c
50
retroarch.c
@ -6651,7 +6651,8 @@ bool command_event(enum event_command cmd, void *data)
|
|||||||
if (cached_video_driver[0])
|
if (cached_video_driver[0])
|
||||||
{
|
{
|
||||||
settings_t *settings = configuration_settings;
|
settings_t *settings = configuration_settings;
|
||||||
strcpy(settings->arrays.video_driver, cached_video_driver);
|
strlcpy(settings->arrays.video_driver, cached_video_driver,
|
||||||
|
sizeof(settings->arrays.video_driver));
|
||||||
cached_video_driver[0] = 0;
|
cached_video_driver[0] = 0;
|
||||||
RARCH_LOG("[Video]: Restored video driver to \"%s\".\n", settings->arrays.video_driver);
|
RARCH_LOG("[Video]: Restored video driver to \"%s\".\n", settings->arrays.video_driver);
|
||||||
}
|
}
|
||||||
@ -7872,7 +7873,8 @@ void main_exit(void *args)
|
|||||||
|
|
||||||
if (cached_video_driver[0])
|
if (cached_video_driver[0])
|
||||||
{
|
{
|
||||||
strcpy(settings->arrays.video_driver, cached_video_driver);
|
strlcpy(settings->arrays.video_driver, cached_video_driver,
|
||||||
|
sizeof(settings->arrays.video_driver));
|
||||||
cached_video_driver[0] = 0;
|
cached_video_driver[0] = 0;
|
||||||
RARCH_LOG("[Video]: Restored video driver to \"%s\".\n", settings->arrays.video_driver);
|
RARCH_LOG("[Video]: Restored video driver to \"%s\".\n", settings->arrays.video_driver);
|
||||||
}
|
}
|
||||||
@ -10707,7 +10709,6 @@ static void free_retro_ctx_load_content_info(struct
|
|||||||
static struct retro_game_info* clone_retro_game_info(const
|
static struct retro_game_info* clone_retro_game_info(const
|
||||||
struct retro_game_info *src)
|
struct retro_game_info *src)
|
||||||
{
|
{
|
||||||
void *data = NULL;
|
|
||||||
struct retro_game_info *dest = NULL;
|
struct retro_game_info *dest = NULL;
|
||||||
|
|
||||||
if (!src)
|
if (!src)
|
||||||
@ -10719,11 +10720,22 @@ static struct retro_game_info* clone_retro_game_info(const
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
dest->data = NULL;
|
dest->data = NULL;
|
||||||
dest->path = strcpy_alloc(src->path);
|
|
||||||
|
if (src->path)
|
||||||
|
{
|
||||||
|
size_t len = strlen(src->path);
|
||||||
|
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
char *result = (char*)malloc(len+1);
|
||||||
|
strcpy(result, src->path);
|
||||||
|
dest->path = result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (src->size && src->data)
|
if (src->size && src->data)
|
||||||
{
|
{
|
||||||
data = malloc(src->size);
|
void *data = malloc(src->size);
|
||||||
|
|
||||||
if (data)
|
if (data)
|
||||||
{
|
{
|
||||||
@ -10733,7 +10745,18 @@ static struct retro_game_info* clone_retro_game_info(const
|
|||||||
}
|
}
|
||||||
|
|
||||||
dest->size = src->size;
|
dest->size = src->size;
|
||||||
dest->meta = strcpy_alloc(src->meta);
|
|
||||||
|
if (src->meta)
|
||||||
|
{
|
||||||
|
size_t len = strlen(src->meta);
|
||||||
|
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
char *result = (char*)malloc(len+1);
|
||||||
|
strcpy(result, src->meta);
|
||||||
|
dest->meta = result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
@ -21251,8 +21274,10 @@ static bool video_driver_find_driver(void)
|
|||||||
if (!string_is_equal(settings->arrays.video_driver, "vulkan"))
|
if (!string_is_equal(settings->arrays.video_driver, "vulkan"))
|
||||||
{
|
{
|
||||||
RARCH_LOG("[Video]: \"%s\" saved as cached driver.\n", settings->arrays.video_driver);
|
RARCH_LOG("[Video]: \"%s\" saved as cached driver.\n", settings->arrays.video_driver);
|
||||||
strcpy(cached_video_driver, settings->arrays.video_driver);
|
strlcpy(cached_video_driver, settings->arrays.video_driver,
|
||||||
strcpy(settings->arrays.video_driver, "vulkan");
|
sizeof(cached_video_driver));
|
||||||
|
strlcpy(settings->arrays.video_driver, "vulkan",
|
||||||
|
sizeof(settings->arrays.video_driver));
|
||||||
}
|
}
|
||||||
current_video = &video_vulkan;
|
current_video = &video_vulkan;
|
||||||
}
|
}
|
||||||
@ -21268,14 +21293,17 @@ static bool video_driver_find_driver(void)
|
|||||||
!string_is_equal(settings->arrays.video_driver, "glcore"))
|
!string_is_equal(settings->arrays.video_driver, "glcore"))
|
||||||
{
|
{
|
||||||
RARCH_LOG("[Video]: \"%s\" saved as cached driver.\n", settings->arrays.video_driver);
|
RARCH_LOG("[Video]: \"%s\" saved as cached driver.\n", settings->arrays.video_driver);
|
||||||
strcpy(cached_video_driver, settings->arrays.video_driver);
|
strlcpy(cached_video_driver, settings->arrays.video_driver,
|
||||||
|
sizeof(cached_video_driver));
|
||||||
#if defined(HAVE_OPENGL_CORE)
|
#if defined(HAVE_OPENGL_CORE)
|
||||||
RARCH_LOG("[Video]: Forcing \"glcore\" driver.\n");
|
RARCH_LOG("[Video]: Forcing \"glcore\" driver.\n");
|
||||||
strcpy(settings->arrays.video_driver, "glcore");
|
strlcpy(settings->arrays.video_driver, "glcore",
|
||||||
|
sizeof(settings->arrays.video_driver));
|
||||||
current_video = &video_gl_core;
|
current_video = &video_gl_core;
|
||||||
#else
|
#else
|
||||||
RARCH_LOG("[Video]: Forcing \"gl\" driver.\n");
|
RARCH_LOG("[Video]: Forcing \"gl\" driver.\n");
|
||||||
strcpy(settings->arrays.video_driver, "gl");
|
strlcpy(settings->arrays.video_driver, "gl",
|
||||||
|
sizeof(settings->arrays.video_driver));
|
||||||
current_video = &video_gl2;
|
current_video = &video_gl2;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include "mem_util.h"
|
#include "mem_util.h"
|
||||||
|
|
||||||
char *strcpy_alloc(const char *src)
|
static char *strcpy_alloc(const char *src)
|
||||||
{
|
{
|
||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
size_t len = src ? strlen(src) : 0;
|
size_t len = src ? strlen(src) : 0;
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
RETRO_BEGIN_DECLS
|
RETRO_BEGIN_DECLS
|
||||||
|
|
||||||
char *strcpy_alloc(const char *sourceStr);
|
|
||||||
char *strcpy_alloc_force(const char *sourceStr);
|
char *strcpy_alloc_force(const char *sourceStr);
|
||||||
|
|
||||||
void strcat_alloc(char ** destStr_p, const char *appendStr);
|
void strcat_alloc(char ** destStr_p, const char *appendStr);
|
||||||
|
|
||||||
RETRO_END_DECLS
|
RETRO_END_DECLS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user