georust / gdal

Rust bindings for GDAL
https://crates.io/crates/gdal
MIT License
359 stars 94 forks source link

_read_dir(): fix memory leak #471

Closed rouault closed 10 months ago

rouault commented 10 months ago

Fixes leak reported by cargo valgrind test --lib:

       Error leaked 200 B in 1 block
        Info at malloc
             at CPLMalloc
             at CPLCalloc
             at CPLStringList::EnsureAllocation(int)
             at CPLStringList::AddStringDirectly(char*)
             at unknown
             at unknown
             at gdal::vsi::_read_dir (vsi.rs:30)
             at gdal::vsi::read_dir (vsi.rs:18)
             at gdal::vsi::tests::test_vsi_read_dir (vsi.rs:314)
             at gdal::vsi::tests::test_vsi_read_dir::{{closure}} (vsi.rs:294)
             at core::ops::function::FnOnce::call_once (function.rs:250)
       Error leaked 219 B in 1 block
        Info at malloc
             at CPLMalloc
             at CPLCalloc
             at CPLStringList::EnsureAllocation(int)
             at CPLStringList::AddStringDirectly(char*)
             at VSIReadDirRecursive
             at gdal::vsi::_read_dir (vsi.rs:24)
             at gdal::vsi::read_dir (vsi.rs:18)
             at gdal::vsi::tests::test_vsi_read_dir (vsi.rs:325)
             at gdal::vsi::tests::test_vsi_read_dir::{{closure}} (vsi.rs:294)
             at core::ops::function::FnOnce::call_once (function.rs:250)
             at call_once<fn() -> core::result::Result<(), alloc::string::String>, ()> (function.rs:250)
             at test::__rust_begin_short_backtrace (lib.rs:626)
     Summary Leaked 419 B total