From 9d69ec2782d2aaf4c0c13c64bb8ae5c095cee747 Mon Sep 17 00:00:00 2001
From: swym <0xfd000000@gmail.com>
Date: Tue, 27 Aug 2019 23:08:15 +0200
Subject: [PATCH] card10.cfg: use strdup instead of memcpy for strings

---
 epicardium/meson.build      | 2 +-
 epicardium/modules/config.c | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/epicardium/meson.build b/epicardium/meson.build
index cf67023b..a6a6c052 100644
--- a/epicardium/meson.build
+++ b/epicardium/meson.build
@@ -70,7 +70,7 @@ subdir('ble/')
 
 subdir('l0der/')
 
-epicardium_cargs = []
+epicardium_cargs = ['-D_POSIX_C_SOURCE=200809']
 if get_option('jailbreak_card10')
   epicardium_cargs += [
     '-DJAILBREAK_CARD10=1',
diff --git a/epicardium/modules/config.c b/epicardium/modules/config.c
index 2c41f814..47396e21 100644
--- a/epicardium/modules/config.c
+++ b/epicardium/modules/config.c
@@ -125,10 +125,7 @@ const char *elide(const char *str)
 static bool set_string(struct config_option *opt, const char *value)
 {
 	//this leaks, but the lifetime of these ends when epicardium exits, so...
-	size_t len  = strlen(value);
-	char *leaks = (char *)malloc(len + 1);
-	strncpy(leaks, value, len);
-	leaks[len]        = '\0';
+	char *leaks       = strdup(value);
 	opt->value.string = leaks;
 	LOG_DEBUG("card10.cfg", "setting '%s' to %s", opt->name, elide(leaks));
 	return true;
-- 
GitLab