ref: ad12e36effaedcae7377c932fc261a07f40078a0
parent: 7c8f9246afed2e7b9b17819e8d43cc6eef19c5ae
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Tue Dec 4 01:06:28 EST 2012
ape/mv: check if from path fits and error if too long
--- a/sys/src/ape/cmd/mv.c
+++ b/sys/src/ape/cmd/mv.c
@@ -85,7 +85,13 @@
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;
--
⑨