summaryrefslogtreecommitdiff
path: root/src/setup/execute.c
diff options
context:
space:
mode:
authorSimon Howard2014-03-29 21:58:08 -0400
committerSimon Howard2014-03-29 21:58:08 -0400
commit6c24da0dad1477fb0585eefac19349dd60f37c3f (patch)
treeefb7e6886d31f3377b4635f210520d2fa94238bf /src/setup/execute.c
parenteb3a4033c7d6f1d5e042edd5f416bbc257e40975 (diff)
downloadchocolate-doom-6c24da0dad1477fb0585eefac19349dd60f37c3f.tar.gz
chocolate-doom-6c24da0dad1477fb0585eefac19349dd60f37c3f.tar.bz2
chocolate-doom-6c24da0dad1477fb0585eefac19349dd60f37c3f.zip
setup: Eliminate use of unsafe string functions.
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
Diffstat (limited to 'src/setup/execute.c')
-rw-r--r--src/setup/execute.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/setup/execute.c b/src/setup/execute.c
index 57fe71c3..076b39fd 100644
--- a/src/setup/execute.c
+++ b/src/setup/execute.c
@@ -48,6 +48,7 @@
#include "mode.h"
#include "m_argv.h"
#include "m_config.h"
+#include "m_misc.h"
struct execute_context_s
{
@@ -271,6 +272,7 @@ static char *GetFullExePath(const char *program)
{
char *result;
char *sep;
+ size_t result_len;
unsigned int path_len;
sep = strrchr(myargv[0], DIR_SEPARATOR);
@@ -282,13 +284,13 @@ static char *GetFullExePath(const char *program)
else
{
path_len = sep - myargv[0] + 1;
+ result_len = strlen(program) + path_len + 1;
+ result = malloc(result_len);
- result = malloc(strlen(program) + path_len + 1);
-
- strncpy(result, myargv[0], path_len);
+ M_StringCopy(result, myargv[0], result_len);
result[path_len] = '\0';
- strcat(result, program);
+ M_StringConcat(result, program, result_len);
}
return result;