summaryrefslogtreecommitdiff
path: root/plugins/dfcdrom
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/dfcdrom')
-rw-r--r--plugins/dfcdrom/cdr.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/plugins/dfcdrom/cdr.c b/plugins/dfcdrom/cdr.c
index ab61886e..3456b42d 100644
--- a/plugins/dfcdrom/cdr.c
+++ b/plugins/dfcdrom/cdr.c
@@ -474,18 +474,28 @@ void ExecCfg(char *arg) {
strcpy(cfg, "./cfgDFCdrom");
if (stat(cfg, &buf) != -1) {
- if (fork() == 0) {
- execl(cfg, "cfgDFCdrom", arg, NULL);
+ int pid = fork();
+ if (pid == 0) {
+ if (fork() == 0) {
+ execl(cfg, "cfgDFCdrom", arg, NULL);
+ }
exit(0);
+ } else if (pid > 0) {
+ waitpid(pid, NULL, 0);
}
return;
}
- strcpy(cfg, "./cfg/DFCdrom");
+ strcpy(cfg, "./cfg/cfgDFCdrom");
if (stat(cfg, &buf) != -1) {
- if (fork() == 0) {
- execl(cfg, "cfgDFCdrom", arg, NULL);
+ int pid = fork();
+ if (pid == 0) {
+ if (fork() == 0) {
+ execl(cfg, "cfgDFCdrom", arg, NULL);
+ }
exit(0);
+ } else if (pid > 0) {
+ waitpid(pid, NULL, 0);
}
return;
}