summaryrefslogtreecommitdiffhomepage
path: root/tools/mrbc
diff options
context:
space:
mode:
authorCremno <[email protected]>2013-08-07 19:58:06 +0200
committerCremno <[email protected]>2013-08-07 19:58:06 +0200
commitba027d7806e00be6b34b2539f42b9f31e218ab91 (patch)
tree2c0e40a8ba70007b4200a056d40ff67b1bdc83dc /tools/mrbc
parent1f5c91d68dfca9a7000f2b194efceed9b96ffdf6 (diff)
downloadmruby-ba027d7806e00be6b34b2539f42b9f31e218ab91.tar.gz
mruby-ba027d7806e00be6b34b2539f42b9f31e218ab91.zip
don't use str{cpy,cat} in mruby and mrbc
The length of each string is known. It should be used.
Diffstat (limited to 'tools/mrbc')
-rw-r--r--tools/mrbc/mrbc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/tools/mrbc/mrbc.c b/tools/mrbc/mrbc.c
index 79fcd2bdf..735b22b1d 100644
--- a/tools/mrbc/mrbc.c
+++ b/tools/mrbc/mrbc.c
@@ -51,15 +51,19 @@ usage(const char *name)
static char *
get_outfilename(mrb_state *mrb, char *infile, char *ext)
{
+ size_t infilelen;
+ size_t extlen;
char *outfile;
char *p;
- outfile = (char*)mrb_malloc(mrb, strlen(infile) + strlen(ext) + 1);
- strcpy(outfile, infile);
+ infilelen = strlen(infile);
+ extlen = strlen(ext);
+ outfile = (char*)mrb_malloc(mrb, infilelen + extlen + 1);
+ memcpy(outfile, infile, infilelen + 1);
if (*ext) {
if ((p = strrchr(outfile, '.')) == NULL)
- p = &outfile[strlen(outfile)];
- strcpy(p, ext);
+ p = outfile + infilelen;
+ memcpy(p, ext, extlen + 1);
}
return outfile;