diff options
author | Simon Howard | 2014-03-29 21:58:08 -0400 |
---|---|---|
committer | Simon Howard | 2014-03-29 21:58:08 -0400 |
commit | 6c24da0dad1477fb0585eefac19349dd60f37c3f (patch) | |
tree | efb7e6886d31f3377b4635f210520d2fa94238bf /src/setup/execute.c | |
parent | eb3a4033c7d6f1d5e042edd5f416bbc257e40975 (diff) | |
download | chocolate-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.c | 10 |
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; |