summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2021-09-01 07:29:12 -0400
committerFrans Kaashoek <[email protected]>2021-09-01 07:29:12 -0400
commit8ca56e9e0b878a90bac9860e971b0d849d7a83e7 (patch)
tree6a2a4f244609dd5581b65ec2e553483fdd61ac43
parentbf4816c9c6a23ee5489ff4f0b04f21b002b3028e (diff)
downloadxv6-labs-8ca56e9e0b878a90bac9860e971b0d849d7a83e7.tar.gz
xv6-labs-8ca56e9e0b878a90bac9860e971b0d849d7a83e7.tar.bz2
xv6-labs-8ca56e9e0b878a90bac9860e971b0d849d7a83e7.zip
memmove(dst, src, 0) leads to overflow in `while(n-- > 0)` as `n` is uint64 (thanks
Matúš Jókay <[email protected]>)
-rw-r--r--kernel/string.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/string.c b/kernel/string.c
index d99e612..153536f 100644
--- a/kernel/string.c
+++ b/kernel/string.c
@@ -33,6 +33,9 @@ memmove(void *dst, const void *src, uint n)
const char *s;
char *d;
+ if(n == 0)
+ return dst;
+
s = src;
d = dst;
if(s < d && s + n > d){