==9716== Memcheck, a memory error detector ==9716== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==9716== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info ==9716== Command: dmpovray splinefollow.ini ==9716== Parent PID: 7411 ==9716== ==9716== Thread 6: ==9716== Invalid read of size 8 ==9716== at 0x5CE7E0: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:674) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) ==9716== Address 0xf52a378 is 0 bytes after a block of size 88 alloc'd ==9716== at 0x4C2C12F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==9716== by 0x5CF273: allocate (new_allocator.h:104) ==9716== by 0x5CF273: allocate (alloc_traits.h:182) ==9716== by 0x5CF273: _M_allocate (stl_vector.h:170) ==9716== by 0x5CF273: std::vector >::_M_fill_insert(__gnu_cxx::__normal_iterator > >, unsigned long, pov::SplineEntry const&) (vector.tcc:491) ==9716== by 0x5CE6BB: insert (stl_vector.h:1073) ==9716== by 0x5CE6BB: resize (stl_vector.h:716) ==9716== by 0x5CE6BB: pov::mkfree(pov::GenericSpline*, unsigned long) (spline.cpp:450) ==9716== by 0x5CE835: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:681) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== ==9716== Invalid write of size 8 ==9716== at 0x5CE7A5: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:677) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) ==9716== Address 0xf52a478 is 8 bytes after a block of size 176 alloc'd ==9716== at 0x4C2C12F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==9716== by 0x5CF273: allocate (new_allocator.h:104) ==9716== by 0x5CF273: allocate (alloc_traits.h:182) ==9716== by 0x5CF273: _M_allocate (stl_vector.h:170) ==9716== by 0x5CF273: std::vector >::_M_fill_insert(__gnu_cxx::__normal_iterator > >, unsigned long, pov::SplineEntry const&) (vector.tcc:491) ==9716== by 0x5CE6BB: insert (stl_vector.h:1073) ==9716== by 0x5CE6BB: resize (stl_vector.h:716) ==9716== by 0x5CE6BB: pov::mkfree(pov::GenericSpline*, unsigned long) (spline.cpp:450) ==9716== by 0x5CE835: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:681) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== ==9716== Invalid write of size 8 ==9716== at 0x5CE7AF: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:677) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) ==9716== Address 0xf52a480 is 16 bytes after a block of size 176 alloc'd ==9716== at 0x4C2C12F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==9716== by 0x5CF273: allocate (new_allocator.h:104) ==9716== by 0x5CF273: allocate (alloc_traits.h:182) ==9716== by 0x5CF273: _M_allocate (stl_vector.h:170) ==9716== by 0x5CF273: std::vector >::_M_fill_insert(__gnu_cxx::__normal_iterator > >, unsigned long, pov::SplineEntry const&) (vector.tcc:491) ==9716== by 0x5CE6BB: insert (stl_vector.h:1073) ==9716== by 0x5CE6BB: resize (stl_vector.h:716) ==9716== by 0x5CE6BB: pov::mkfree(pov::GenericSpline*, unsigned long) (spline.cpp:450) ==9716== by 0x5CE835: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:681) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== ==9716== Invalid write of size 8 ==9716== at 0x5CE7B9: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:677) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) ==9716== Address 0xf52a488 is 24 bytes after a block of size 176 in arena "client" ==9716== valgrind: m_mallocfree.c:303 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed. valgrind: Heap block lo/hi size mismatch: lo = 240, hi = 0. This is probably caused by your program erroneously writing past the end of a heap block and corrupting heap metadata. If you fix any invalid writes reported by Memcheck, this assertion failure will probably go away. Please try that before reporting this as a bug. host stacktrace: ==9716== at 0x38083F98: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x380840B4: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x38084241: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x38091AEC: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x3807D653: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x3807BEE3: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x380800BA: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x3807B47A: ??? (in /usr/lib/valgrind/memcheck-amd64-linux) ==9716== by 0x805EA7213: ??? ==9716== by 0x804BEEF1F: ??? ==9716== by 0x802010FCF: ??? ==9716== by 0xF45F2FF: ??? ==9716== by 0x802010FCF: ??? ==9716== by 0xA7FF: ??? ==9716== by 0x1BC56: ??? ==9716== by 0x802EB4FFF: ??? (in /tmp/vgdb-pipe-shared-mem-vgdb-9716-by-jerome-on-???) ==9716== by 0x6669: ??? sched status: running_tid=6 Thread 1: status = VgTs_WaitSys (lwpid 9716) ==9716== at 0x5A0B149: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_timedwait.S:238) ==9716== by 0x43A68E: do_wait_until > (condition_variable.hpp:360) ==9716== by 0x43A68E: timed_wait > (condition_variable.hpp:206) ==9716== by 0x43A68E: bool boost::condition_variable_any::timed_wait >(boost::unique_lock&, boost::xtime const&) (condition_variable.hpp:211) ==9716== by 0x433B4D: vfe::vfeSession::GetStatus(bool, int) (vfesession.cpp:916) ==9716== by 0x41785A: main (unixconsole.cpp:508) Thread 2: status = VgTs_WaitSys (lwpid 9717) ==9716== at 0x5A0EA90: do_sigwait (sigwait.c:64) ==9716== by 0x5A0EA90: sigwait (sigwait.c:96) ==9716== by 0x44CE08: SignalHandler() (unixconsole.cpp:98) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) Thread 3: status = VgTs_WaitSys (lwpid 9718) ==9716== at 0x5A0B149: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_timedwait.S:238) ==9716== by 0x44EDA9: do_wait_until > (condition_variable.hpp:360) ==9716== by 0x44EDA9: timed_wait > (condition_variable.hpp:206) ==9716== by 0x44EDA9: timed_wait > (condition_variable.hpp:211) ==9716== by 0x44EDA9: vfe::SysQNode::Receive(int*, bool) (vfepovms.cpp:173) ==9716== by 0x4F0EEC: POVMS_ProcessMessages(void*, bool, bool) (povms.c:540) ==9716== by 0x4322C5: vfe::vfeSession::WorkerThread() (vfesession.cpp:610) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) Thread 4: status = VgTs_WaitSys (lwpid 9719) ==9716== at 0x5A0B149: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_timedwait.S:238) ==9716== by 0x44EDA9: do_wait_until > (condition_variable.hpp:360) ==9716== by 0x44EDA9: timed_wait > (condition_variable.hpp:206) ==9716== by 0x44EDA9: timed_wait > (condition_variable.hpp:211) ==9716== by 0x44EDA9: vfe::SysQNode::Receive(int*, bool) (vfepovms.cpp:173) ==9716== by 0x4F0EEC: POVMS_ProcessMessages(void*, bool, bool) (povms.c:540) ==9716== by 0x4D67FD: (anonymous namespace)::MainThreadFunction(boost::function0 const&) (povray.cpp:543) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) Thread 5: status = VgTs_WaitSys (lwpid 9720) ==9716== at 0x5A0E53D: ??? (syscall-template.S:81) ==9716== by 0x462463: pov_base::Delay(unsigned int) (platformbase.cpp:69) ==9716== by 0x4DEB8A: pov::Scene::ParserControlThread() (scene.cpp:336) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) Thread 6: status = VgTs_Runnable (lwpid 9721) ==9716== at 0x5CE7C3: pov::Insert_Spline_Entry(pov::GenericSpline*, double, double const (&) [5]) (spline.cpp:677) ==9716== by 0x6500D6: pov::Parser::Parse_Spline() (parser_expressions.cpp:3664) ==9716== by 0x555F26: pov::Parser::Parse_RValue(int, int*, void**, pov::Sym_Table_Entry*, bool, bool, bool, bool, bool, int) (parser.cpp:9048) ==9716== by 0x557237: pov::Parser::Parse_Declare(bool, bool) (parser.cpp:8691) ==9716== by 0x662759: pov::Parser::Parse_Directive(int) (parser_tokenizer.cpp:2144) ==9716== by 0x65DB7C: pov::Parser::Get_Token() (parser_tokenizer.cpp:451) ==9716== by 0x557FD7: pov::Parser::Parse_Frame() (parser.cpp:6728) ==9716== by 0x558B63: pov::Parser::Run() (parser.cpp:210) ==9716== by 0x5875DE: pov::Task::TaskThread(boost::function0 const&) (task.cpp:169) ==9716== by 0x6741800: thread_proxy (in /usr/local/lib/libboost_thread.so.1.58.0) ==9716== by 0x5A056A9: start_thread (pthread_create.c:333) ==9716== by 0x7504E9C: clone (clone.S:109) Note: see also the FAQ in the source distribution. It contains workarounds to several common problems. In particular, if Valgrind aborted or crashed after identifying problems in your program, there's a good chance that fixing those problems will prevent Valgrind aborting or crashing, especially if it happened in m_mallocfree.c. If that doesn't help, please report this bug to: www.valgrind.org In the bug report, send all the above text, the valgrind version, and what OS and version you are using. Thanks.