1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-15 04:32:24 +00:00

dtfile/dtcopy/fsrtns: CID 88868,88128

This commit is contained in:
Jon Trulson 2018-04-11 15:57:03 -06:00
parent 3ba5c25a55
commit 43a5b19ea0

View file

@ -211,7 +211,7 @@ CopyDir(char *sourceP, char *targetP, int repl, int link, struct stat *statP)
{ {
DIR *dirP; /* open directory */ DIR *dirP; /* open directory */
struct dirent *entryP; /* directory entry */ struct dirent *entryP; /* directory entry */
char srcname[1024], tgtname[1024]; char srcname[PATH_MAX], tgtname[PATH_MAX];
int srclen, tgtlen; int srclen, tgtlen;
int rc; int rc;
@ -225,7 +225,10 @@ CopyDir(char *sourceP, char *targetP, int repl, int link, struct stat *statP)
if (rc < 0 && errno == EEXIST && repl) { if (rc < 0 && errno == EEXIST && repl) {
rc = EraseObject(targetP, repl); rc = EraseObject(targetP, repl);
if (rc) if (rc)
return rc; {
closedir(dirP);
return rc;
}
rc = mkdir(targetP, statP->st_mode & 0777); rc = mkdir(targetP, statP->st_mode & 0777);
} }
if (rc < 0) { if (rc < 0) {
@ -247,11 +250,11 @@ CopyDir(char *sourceP, char *targetP, int repl, int link, struct stat *statP)
} }
/* prepare source and target names */ /* prepare source and target names */
strcpy(srcname, sourceP); snprintf(srcname, PATH_MAX, "%s", sourceP);
srclen = strlen(srcname); srclen = strlen(srcname);
if (srcname[srclen - 1] != '/') if (srcname[srclen - 1] != '/')
srcname[srclen++] = '/'; srcname[srclen++] = '/';
strcpy(tgtname, targetP); snprintf(tgtname, PATH_MAX, "%s", targetP);
tgtlen = strlen(tgtname); tgtlen = strlen(tgtname);
if (tgtname[tgtlen - 1] != '/') if (tgtname[tgtlen - 1] != '/')
tgtname[tgtlen++] = '/'; tgtname[tgtlen++] = '/';