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:
parent
3ba5c25a55
commit
43a5b19ea0
1 changed files with 7 additions and 4 deletions
|
@ -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++] = '/';
|
||||||
|
|
Loading…
Reference in a new issue