summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/ape/cmd/mv.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/src/ape/cmd/mv.c b/sys/src/ape/cmd/mv.c
index 14423c149..4764e34f5 100644
--- a/sys/src/ape/cmd/mv.c
+++ b/sys/src/ape/cmd/mv.c
@@ -85,7 +85,13 @@ mv1(char *from, Dir *dirb, char *todir, char *toelem)
char *fromdir, *fromelem;
Dir *dirt, null;
- strncpy(fromname, from, sizeof fromname);
+ i = strlen(from);
+ if(i >= sizeof(fromname)){
+ fprint(2, "mv: path too big (max %d): %s\n",
+ sizeof(fromname), from);
+ return -1;
+ }
+ memmove(fromname, from, i+1);
split(from, &fromdir, &fromelem);
if(toelem == 0)
toelem = fromelem;