AP_Terrain: fix Coverity issue 91367

Also converts to using the get_relative_position_D_home() functions rather then attempting to derive home itself
This commit is contained in:
Michael du Breuil 2017-03-04 00:13:15 -07:00 committed by Andrew Tridgell
parent 14b214eb9b
commit 3e2b5269a6
2 changed files with 17 additions and 7 deletions

View File

@ -220,11 +220,11 @@ bool AP_Terrain::height_above_terrain(float &terrain_altitude, bool extrapolate)
// we don't know where we are
return false;
}
float relative_home_altitude = loc.alt*0.01f;
if (!loc.flags.relative_alt) {
// loc.alt has home altitude added, remove it
relative_home_altitude -= ahrs.get_home().alt*0.01f;
}
float relative_home_altitude;
ahrs.get_relative_position_D_home(relative_home_altitude);
relative_home_altitude = -relative_home_altitude;
terrain_altitude = relative_home_altitude - terrain_difference;
return true;
}

View File

@ -178,9 +178,19 @@ void AP_Terrain::open_file(void)
// create directory if need be
if (!directory_created) {
*p = 0;
mkdir(file_path, 0755);
directory_created = true;
directory_created = !mkdir(file_path, 0755);
*p = '/';
if (!directory_created) {
if (errno == EEXIST) {
// directory already existed
directory_created = true;
} else {
// if we didn't succeed at making the directory, then IO failed
io_failure = true;
return;
}
}
}
if (fd != -1) {