diff options
author | Frans Kaashoek <[email protected]> | 2021-09-01 07:29:12 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2021-09-01 07:29:12 -0400 |
commit | 8ca56e9e0b878a90bac9860e971b0d849d7a83e7 (patch) | |
tree | 6a2a4f244609dd5581b65ec2e553483fdd61ac43 | |
parent | bf4816c9c6a23ee5489ff4f0b04f21b002b3028e (diff) | |
download | xv6-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.c | 3 |
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){ |