X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Fstring.c;fp=Usermode%2FLibraries%2Flibc.so_src%2Fstring.c;h=3cadee900fc586215180203f2fe2a91eed8481bc;hb=c275e76e346b3996829cf1d66ddd488daab35a30;hp=e9e157411e00083a4e21df08673d0997f1c01025;hpb=0ca124ec02d184c9bd3736354b2ae7c51330ed1d;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/string.c b/Usermode/Libraries/libc.so_src/string.c index e9e15741..3cadee90 100644 --- a/Usermode/Libraries/libc.so_src/string.c +++ b/Usermode/Libraries/libc.so_src/string.c @@ -273,10 +273,11 @@ EXPORT void *memmove(void *dest, const void *src, size_t count) char *sp = (char *)src; char *dp = (char *)dest; // Check if the areas overlap - if( (intptr_t)dest > (intptr_t)src && (intptr_t)dest < (intptr_t)src+count ) - for(;count--;) dp[count] = sp[count]; + if( (intptr_t)src < (intptr_t)dest && (intptr_t)dest < (intptr_t)src+count ) + for(;count--;) + dp[count] = sp[count]; else - for(;count--;) *dp++ = *sp++; + memcpy(dest, src, count); return dest; }