Avoid reloading the same DEM directory
Summary
Avoid reloading the same DEM directory.
Fix segfault when a corrupted simlink is present in the DEM directory.
Rationale
To set the directory containing the DEM in the DEMHandler, one calls DEMHandler::OpenDEMDirectory
. Due to how the Application framework works, with the DoUpdateParameters function being called for each parameter, the same directory may be set multiple times, unloading and loading the same data each time. To avoid this, we propose to modify the DEMHandler so it doesn't reload a directory if one calls DEMHandler::OpenDEMDirectory
with the same path.
Also, when there is a simlink in the DEM directory, if this simlink links to itself, it makes OTB exit with a segfault. We propose to handle this case correctly by ignoring this simlink.
Implementation Details
Classes and files
Modules/IO/IOGDAL/src/otbDEMHandler.cxx
Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
Check before merging:
- All discussions are resolved
- At least 2
👍 votes from core developers, no👎 vote. - The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run
git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i
on latest changes and commit