diff options
| author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-12-04 06:06:28 +0100 |
|---|---|---|
| committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-12-04 06:06:28 +0100 |
| commit | 4ae38efc1c28c968d2c5e26d305d917dd25b6594 (patch) | |
| tree | 55bfe7a772d3319b7e9b1f3b0cdfccce96cd2a81 | |
| parent | b4e34c1c74bcd83ea407d5c2b759b7e551ba9a3e (diff) | |
| download | plan9front-4ae38efc1c28c968d2c5e26d305d917dd25b6594.tar.xz | |
ape/mv: check if from path fits and error if too long
| -rw-r--r-- | sys/src/ape/cmd/mv.c | 8 |
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; |
