A message from Alex : This is a Valgrind log for the test cass on my GNU+Linux box. I hope it helps. It looks like there are several errors in the GC code. The errors about memory and string functions are mostly harmless. The error about the "Use of uninitialised value of size 4" will be addressed separately. I think we need to test GS under valgrind during regression testing, at least occasionaly.
Created attachment 1554 [details] valgrind log
Use of uninitialised value of size 4 Regarding at 0x8244C55: gx_image_enum_begin (./src/gxipixel.c:554) : The loop condition in the line 553 must use '<' rather than '<='. I don't think that it's harmful. Only consequence is a non-optimal representation of an image. Will fix late, because now I concentrate on another problem.
Regarding " Source and destination overlap in memcpy" : Must replace all those calls with memmove. IMO the current code isn't well portable.
All cases of "Source and destination overlap in memcpy" except the bug 688224 are caused by copying a block of memory into itself. I think this should be addressed on the higher level than the memmove() fix. Although we need to fix this, the main benefit is the noise reduction in the Valgrind log.
Created attachment 1563 [details] partial fix - more changes of this kind are needed Pacify Valgrind: don't copy memory on itself and split a logical expression, which is evaluated out of order by GCC 2.96 .
All errors reported here in bulk are either fixed or filed separately - one issue per bug report.