Fix issue with devices-fake test.
[rsync/rsync.git] / main.c
diff --git a/main.c b/main.c
index d020e6c..649aa90 100644 (file)
--- a/main.c
+++ b/main.c
@@ -130,7 +130,7 @@ static void show_malloc_stats(void);
 pid_t wait_process(pid_t pid, int *status_ptr, int flags)
 {
        pid_t waited_pid;
-       
+
        do {
                waited_pid = waitpid(pid, status_ptr, flags);
        } while (waited_pid == -1 && errno == EINTR);
@@ -493,7 +493,11 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in
                                rprintf(FERROR, "internal: args[] overflowed in do_cmd()\n");
                                exit_cleanup(RERR_SYNTAX);
                        }
-                       args[argc++] = *remote_argv++;
+                       if (**remote_argv == '-') {
+                               if (asprintf(args + argc++, "./%s", *remote_argv++) < 0)
+                                       out_of_memory("do_cmd");
+                       } else
+                               args[argc++] = *remote_argv++;
                        remote_argc--;
                }
        }