summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2009-11-25 11:08:11 +0100
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2009-11-25 11:08:11 +0100
commitace63dea97f7cfb6be838c320605050a856c8800 (patch)
tree32ec84ad981e32a20e3b351c097813e5e8247ea7
parent4308ffb5d0d4d1929c4fbf3a6110e39df6671479 (diff)
fixed resolving of relative path
-rw-r--r--main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/main.c b/main.c
index 6687ffb7..986d9cd7 100644
--- a/main.c
+++ b/main.c
@@ -625,7 +625,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;
}