summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/main.c b/main.c
index 252c403d..9f35dc1a 100644
--- a/main.c
+++ b/main.c
@@ -405,7 +405,16 @@ main (int argc, char *argv[]) {
if (len >= size) {
break;
}
- memcpy (p, argv[i], len+1);
+ char resolved[PATH_MAX];
+ // need to resolve path here, because remote doesn't know current
+ // path of this process
+ if (argv[i][0] != '-' && realpath (argv[i], resolved)) {
+ len = strlen (resolved);
+ memcpy (p, resolved, len+1);
+ }
+ else {
+ memcpy (p, argv[i], len+1);
+ }
p += len;
size -= len;
}