DIR * dirp;
struct dirent * entry;
Boolean success;
- int i, rc;
+ int i, rc, rv;
char savechar;
for (i = 0; i < file_count; i++)
pipe_msg = PIPEMSG_OTHER_ERROR;
rc = BAD_FILE_ERROR;
DPRINTF(("MoveToTrashProcess: sending BAD_FILE_ERROR\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, &rc, sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, &rc, sizeof(int));
continue;
}
if (path && MatchesSacredDirectory(path))
pipe_msg = PIPEMSG_OTHER_ERROR;
rc = BAD_FILE_SACRED;
DPRINTF(("MoveToTrashProcess: sending BAD_FILE_SACRED\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, &rc, sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, &rc, sizeof(int));
continue;
}
XtFree(path);
pipe_msg = PIPEMSG_OTHER_ERROR;
DPRINTF(("MoveToTrashProcess: sending BAD_TRASH message\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, &rc, sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, &rc, sizeof(int));
continue;
}
else if (CheckAccess(path, W_OK) != 0 && !S_ISLNK(s1.st_mode))
pipe_msg = PIPEMSG_OTHER_ERROR;
rc = VERIFY_FILE;
DPRINTF(("MoveToTrashProcess: sending VERIFY_FILE\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, &rc, sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, &rc, sizeof(int));
continue;
}
pipe_msg = PIPEMSG_OTHER_ERROR;
rc = VERIFY_DIR;
DPRINTF(("MoveToTrashProcess: sending VERIFY_DIR\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, &rc, sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, &rc, sizeof(int));
continue;
}
}
{
pipe_msg = PIPEMSG_DONE;
DPRINTF(("MoveToTrashProcess: sending DONE\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
PipeWriteString(pipe_fd, path);
PipeWriteString(pipe_fd, to);
}
int *rc,
Boolean CheckedAlready)
{
- int i, j;
+ int i, j, rv;
char *full_dirname;
char *from, *to;
char *ptr;
pipe_msg = PIPEMSG_DONE;
rc[0] = -1;
DPRINTF(("RestoreProcess: Unable to Resolve local path name\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, rc, sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, rc, sizeof(int));
return;
}
}
/* send return codes back trough the pipe */
pipe_msg = PIPEMSG_DONE;
DPRINTF(("RestoreProcess: sending DONE\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, rc, file_count * sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, rc, file_count * sizeof(int));
XtFree(full_dirname);
}
int del_count,
int *rc)
{
- int i;
+ int i, rv;
short pipe_msg;
/*
/* send return codes back trough the pipe */
pipe_msg = PIPEMSG_DONE;
DPRINTF(("EmptyTrashProcess: sending DONE\n"));
- write(pipe_fd, &pipe_msg, sizeof(short));
- write(pipe_fd, rc, del_count * sizeof(int));
+ rv = write(pipe_fd, &pipe_msg, sizeof(short));
+ rv = write(pipe_fd, rc, del_count * sizeof(int));
}
#endif
{
char *tmpfile;
- tmpfile = tempnam(parentdir,"quang");
- if (creat(tmpfile,O_RDONLY)< 0) /* Create a temporary file */
- return -1;
+ tmpfile = tempnam(parentdir,"dtfile");
+ if (!tmpfile)
+ return -1;
+ if (creat(tmpfile,O_RDONLY) < 0) /* Create a temporary file */
+ {
+ free(tmpfile);
+ return -1;
+ }
if (remove(tmpfile) < 0) /* Delete the created file */
- return -1;
+ {
+ free(tmpfile);
+ return -1;
+ }
+ free(tmpfile);
}
/* root user can delete anything */
/* recursively check permission on this file */
if (CheckDeletePermissionRecur(destinationPath))
- return -1;
+ {
+ closedir(dirp);
+ return -1;
+ }
+
}
}
+ closedir(dirp);
+
return 0;
}
{
struct stat statsrc,stattar;
Boolean status;
- char *localdir,*chrptr;
+ char *localdir = NULL,*chrptr;
+ int rv;
if(!CheckedAlready)
{
return SKIP_FILE;
}
}
+
+ free(localdir);
return ((int )FileManip((Widget)w, MOVE_FILE, source, target, TRUE,
- FileOpError, False, NOT_DESKTOP));
+ FileOpError, False, NOT_DESKTOP));
}
static void
CreateRestoreDialog(