Yep. Typically hard to trace stuff. :p
The only suspicious output I get from valgrind seems to be this:
==29136== Invalid write of size 1 ==29136== at 0x7EF175A: (within /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7EEEFC9: (within /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7EEDEF5: (within /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7EEADFE: jpeg_write_scanlines (in /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7CE285F: image_jpeg_encode (image_jpeg.c:912) ==29136== by 0x434907: low_mega_apply (apply_low.h:225) ==29136== by 0x4375B3: eval_instruction (interpret_functions.h:2066) ==29136== by 0x440CAA: catching_eval_instruction (interpret.c:2227) ==29136== by 0x440177: eval_instruction (interpret_functions.h:1287) ==29136== by 0x440D9F: mega_apply (interpret.c:2197) ==29136== by 0x4DBF37: call_pike_initializers (object.c:337) ==29136== by 0x4DEA0B: parent_clone_object (object.c:420) ==29136== Address 0x6199cf8 is 0 bytes after a block of size 8,192 alloc'd ==29136== at 0x4C22FAB: malloc (vg_replace_malloc.c:207) ==29136== by 0x7CDF7AE: my_init_destination (image_jpeg.c:249) ==29136== by 0x7EEAF8C: jpeg_start_compress (in /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7CE25AA: image_jpeg_encode (image_jpeg.c:880) ==29136== by 0x434907: low_mega_apply (apply_low.h:225) ==29136== by 0x4375B3: eval_instruction (interpret_functions.h:2066) ==29136== by 0x440CAA: catching_eval_instruction (interpret.c:2227) ==29136== by 0x440177: eval_instruction (interpret_functions.h:1287) ==29136== by 0x440D9F: mega_apply (interpret.c:2197) ==29136== by 0x4DBF37: call_pike_initializers (object.c:337) ==29136== by 0x4DEA0B: parent_clone_object (object.c:420) ==29136== by 0x43546A: low_mega_apply (apply_low.h:238)
a few of those, then:
==29136== Invalid write of size 1 ==29136== at 0x7EF1588: (within /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7EEEFC9: (within /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7EEDEF5: (within /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7EEADFE: jpeg_write_scanlines (in /usr/lib/libjpeg.so.62.0.0) ==29136== by 0x7CE285F: image_jpeg_encode (image_jpeg.c:912) ==29136== by 0x434907: low_mega_apply (apply_low.h:225) ==29136== by 0x4375B3: eval_instruction (interpret_functions.h:2066) ==29136== by 0x440CAA: catching_eval_instruction (interpret.c:2227) ==29136== by 0x440177: eval_instruction (interpret_functions.h:1287) ==29136== by 0x440D9F: mega_apply (interpret.c:2197) ==29136== by 0x4DBF37: call_pike_initializers (object.c:337) ==29136== by 0x4DEA0B: parent_clone_object (object.c:420) ==29136== Address 0x619a30a is 674 bytes inside a block of size 12,960 free'd ==29136== at 0x4C22B2E: free (vg_replace_malloc.c:323) ==29136== by 0x4D41A2: really_free_mapping (mapping.c:277) ==29136== by 0x476CE9: free_decode_data (encode.c:4795) ==29136== by 0x482BCF: f_decode_value (encode.c:4975) ==29136== by 0x436E6F: eval_instruction (interpret_functions.h:2301) ==29136== by 0x440CAA: catching_eval_instruction (interpret.c:2227) ==29136== by 0x440177: eval_instruction (interpret_functions.h:1287) ==29136== by 0x440D9F: mega_apply (interpret.c:2197) ==29136== by 0x4E1664: object_index_no_free (object.c:1373) ==29136== by 0x4384F2: eval_instruction (interpret_functions.h:1803) ==29136== by 0x440D9F: mega_apply (interpret.c:2197) ==29136== by 0x4E1664: object_index_no_free (object.c:1373) --29136-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting --29136-- si_code=80; Faulting address: 0x0; sp: 0x403469E40
Any ideas? Is Pike messing up the alloc table? :p