diff --git a/psys/src/newci.c b/psys/src/newci.c index 36d430e9e1afce479b4458c5890192c67d6da76a..4722a896e9c486262c61629c2090d24042743d7d 100644 --- a/psys/src/newci.c +++ b/psys/src/newci.c @@ -67,21 +67,15 @@ static void goodfixname(char *name, char *ext, char *home, int force) { size_t i; int hassuffix; + char STR1[256]; size_t len = strlen(name); /* fs_zapspaces(name); */ if (len > 2 && name[0] == '*' && name[1] == '*') { - char *sz_tmp = malloc(sizeof(char) * len + 1); - strcpy(sz_tmp, name); + strcpy_overlap(name, name + 2); - /* expand to can add home */ - len += strlen(home) + 1; /* name + home + '\0' */ - name = realloc(name, sizeof(char) * len); - - /* Add home value before the name value */ - sprintf(name, "%s%s", home, sz_tmp); - free(sz_tmp); + sprintf(name, "%s%s", home, strcpy(STR1, name)); } if (force)