==3374== Memcheck, a memory error detector ==3374== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==3374== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==3374== Command: ogrinfo -ro -al data/bylany.vfk ==3374== ==3374== Conditional jump or move depends on uninitialised value(s) ==3374== at 0x4026D17: strlen (mc_replace_strmem.c:282) ==3374== by 0x46A84BC: VFKReader::AddInfo(char const*) (char_traits.h:263) ==3374== by 0x46A7AFE: VFKReader::LoadDataBlocks() (vfkreader.cpp:240) ==3374== by 0x4669478: OGRVFKDataSource::Open(char const*, int) (ogrvfkdatasource.cpp:123) ==3374== by 0x466985C: OGRVFKDriver::Open(char const*, int) (ogrvfkdriver.cpp:72) ==3374== by 0x46586A2: OGRSFDriverRegistrar::Open(char const*, int, OGRSFDriver**) (ogrsfdriverregistrar.cpp:209) ==3374== by 0x8049DFE: main (ogrinfo.cpp:174) ==3374== ==3374== Invalid write of size 1 ==3374== at 0x4026F89: strncpy (mc_replace_strmem.c:339) ==3374== by 0x46A83E0: VFKReader::AddInfo(char const*) (string3.h:122) ==3374== by 0x46A7AFE: VFKReader::LoadDataBlocks() (vfkreader.cpp:240) ==3374== by 0x4669478: OGRVFKDataSource::Open(char const*, int) (ogrvfkdatasource.cpp:123) ==3374== by 0x466985C: OGRVFKDriver::Open(char const*, int) (ogrvfkdriver.cpp:72) ==3374== by 0x46586A2: OGRSFDriverRegistrar::Open(char const*, int, OGRSFDriver**) (ogrsfdriverregistrar.cpp:209) ==3374== by 0x8049DFE: main (ogrinfo.cpp:174) ==3374== Address 0x5e66712 is 0 bytes after a block of size 2 alloc'd ==3374== at 0x4025BDC: malloc (vg_replace_malloc.c:195) ==3374== by 0x451C04D: VSIMalloc (cpl_vsisimple.cpp:386) ==3374== by 0x4500EA7: CPLMalloc (cpl_conv.cpp:128) ==3374== by 0x46A83CA: VFKReader::AddInfo(char const*) (vfkreader.cpp:357) ==3374== by 0x46A7AFE: VFKReader::LoadDataBlocks() (vfkreader.cpp:240) ==3374== by 0x4669478: OGRVFKDataSource::Open(char const*, int) (ogrvfkdatasource.cpp:123) ==3374== by 0x466985C: OGRVFKDriver::Open(char const*, int) (ogrvfkdriver.cpp:72) ==3374== by 0x46586A2: OGRSFDriverRegistrar::Open(char const*, int, OGRSFDriver**) (ogrsfdriverregistrar.cpp:209) ==3374== by 0x8049DFE: main (ogrinfo.cpp:174) ==3374== ==3374== ==3374== HEAP SUMMARY: ==3374== in use at exit: 61,361 bytes in 2,855 blocks ==3374== total heap usage: 29,135 allocs, 26,280 frees, 680,190 bytes allocated ==3374== ==3374== 588 (12 direct, 576 indirect) bytes in 1 blocks are definitely lost in loss record 34 of 49 ==3374== at 0x4026350: operator new(unsigned int) (vg_replace_malloc.c:214) ==3374== by 0x46A430D: VFKDataBlock::AppendLineToRing(std::vector >*, std::allocator >*> >*, OGRLineString const*, bool) (vfkdatablock.cpp:901) ==3374== by 0x46A549E: VFKDataBlock::LoadGeometry() (vfkdatablock.cpp:841) ==3374== by 0x46A5ABF: VFKDataBlock::GetNextFeature() (vfkdatablock.cpp:313) ==3374== by 0x4669C52: OGRVFKLayer::GetNextFeature() (ogrvfklayer.cpp:201) ==3374== by 0x46325C9: OGRLayer::GetExtent(OGREnvelope*, int) (ogrlayer.cpp:226) ==3374== by 0x804A571: ReportOnLayer(OGRLayer*, char const*, OGRGeometry*) (ogrinfo.cpp:377) ==3374== by 0x804A29B: main (ogrinfo.cpp:284) ==3374== ==3374== 60,701 (44 direct, 60,657 indirect) bytes in 1 blocks are definitely lost in loss record 49 of 49 ==3374== at 0x4026350: operator new(unsigned int) (vg_replace_malloc.c:214) ==3374== by 0x46A7783: CreateVFKReader() (vfkreader.cpp:58) ==3374== by 0x466942B: OGRVFKDataSource::Open(char const*, int) (ogrvfkdatasource.cpp:110) ==3374== by 0x466985C: OGRVFKDriver::Open(char const*, int) (ogrvfkdriver.cpp:72) ==3374== by 0x46586A2: OGRSFDriverRegistrar::Open(char const*, int, OGRSFDriver**) (ogrsfdriverregistrar.cpp:209) ==3374== by 0x8049DFE: main (ogrinfo.cpp:174) ==3374== ==3374== LEAK SUMMARY: ==3374== definitely lost: 56 bytes in 2 blocks ==3374== indirectly lost: 61,233 bytes in 2,850 blocks ==3374== possibly lost: 0 bytes in 0 blocks ==3374== still reachable: 72 bytes in 3 blocks ==3374== suppressed: 0 bytes in 0 blocks ==3374== Reachable blocks (those to which a pointer was found) are not shown. ==3374== To see them, rerun with: --leak-check=full --show-reachable=yes ==3374== ==3374== For counts of detected and suppressed errors, rerun with: -v ==3374== Use --track-origins=yes to see where uninitialised values come from ==3374== ERROR SUMMARY: 21 errors from 4 contexts (suppressed: 113 from 8)