On Fri, Jun 22, 2001 at 08:21:30PM +0200, Maciej W. Rozycki wrote: > > It seems there is a bug in our memmove routine. The condition is rare > > though, for example, memmove copies incorrectly, if src=5, dst=4, len=9. > [...] > > Two questions here. First, do we have a pattern that satisfies the > > condition, i.e. is the bug showstopper? My guess, it's not. Second, does > > somebody have ideas how to fix the bug? Well, I have, but want to hear > > somebody else. > > Here is a quick fix I developed after reading your report. It fixes the > case you described. Now memcpy() is invoked only if there is no overlap > at all -- the approach is taken from the Alpha port. > > The copy loop begs for optimization (the original memmove() bits do as > well), but at least it works correctly. The patch applies cleanly to > 2.4.5 as of today. > > Ralf, I think it should get applied unless someone cooks up a better > solution, i.e. optimizes it. I'll optimize it myself, eventually, if no > one else does, but don't hold your breath. Applied to my working tree. I'll commit it in a few hours once I found time to implement the same fix for 2.2 and mips64. Ralf