Module: wine Branch: refs/heads/master Commit: eb2bedc56d83990499a77a7d17cad810822230e1 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=eb2bedc56d83990499a77a7d...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Aug 1 19:35:52 2006 +0200
libport: Fixed invalid lvalue accesses in memmove.
---
libs/port/memmove.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/libs/port/memmove.c b/libs/port/memmove.c index f8402de..7be9638 100644 --- a/libs/port/memmove.c +++ b/libs/port/memmove.c @@ -22,25 +22,26 @@ #include "config.h" #include "wine/port.h"
#ifndef HAVE_MEMMOVE -void *memmove( void *dest, const void *src, size_t len ) +void *memmove( void *dest, const void *source, size_t len ) { register char *dst = dest; + register const char *src = source;
/* Use memcpy if not overlapping */ - if ((dst + len <= (char *)src) || ((char *)src + len <= dst)) + if ((dst + len <= src) || (src + len <= dst)) { memcpy( dst, src, len ); } /* Otherwise do it the hard way (FIXME: could do better than this) */ - else if (dst < (char *)src) + else if (dst < src) { - while (len--) *dst++ = *((char *)src)++; + while (len--) *dst++ = *src++; } else { dst += len - 1; - src = (char *)src + len - 1; - while (len--) *dst-- = *((char *)src)--; + src += len - 1; + while (len--) *dst-- = *src--; } return dest; }