aboutsummaryrefslogtreecommitdiff
path: root/src/system.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/system.c')
-rw-r--r--src/system.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/system.c b/src/system.c
index ad89682..8cd7303 100644
--- a/src/system.c
+++ b/src/system.c
@@ -96,6 +96,7 @@ int shell2(struct Process *proc, char *args) {
fprintf(tp, "#!/bin/bash\n%s\n", args);
fflush(tp);
fclose(tp);
+ close(fd);
chmod(t_name, 0755);
pid = fork();
@@ -123,6 +124,10 @@ int shell2(struct Process *proc, char *args) {
}
retval = execl("/bin/bash", "bash", "-c", t_name, (char *) NULL);
+ if (!access(t_name, F_OK)) {
+ remove(t_name);
+ }
+
if (proc != NULL && strlen(proc->stdout)) {
if (fp_out != NULL) {
fflush(fp_out);
@@ -154,7 +159,9 @@ int shell2(struct Process *proc, char *args) {
}
}
- remove(t_name);
+ if (!access(t_name, F_OK)) {
+ remove(t_name);
+ }
if (proc != NULL) {
proc->returncode = status;