Fix some of the problems reported by cppcheck

Thanks to Christian for running the static code analysis tool against
subsurface...

There were some false positives, a few style issues that I'll ignore for
now, and two actual potential bugs.

First: Don't check unsigned variables for < 0

This has been around for a while and we are lucky that while technically a
bug it still works as expected. Passing a negative idx simply turns it
into a very large unsigned integer which then fails the > dive_table.nr
test. So it still gets a NULL returned. A bug? Yes. Critical? No.

Mismatched allocation and free

This is an actual bug that potentially could cause issues. We allocate
memory with malloc and free it with g_free. Not good.

Reported-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel
2012-09-18 19:51:48 -04:00
parent f73e5b7268
commit d14932058f
5 changed files with 7 additions and 7 deletions

View File

@@ -96,13 +96,13 @@ static void convert_volume_pressure(int ml, int mbar, double *v, double *p)
volume *= bar_to_atm(mbar / 1000.0);
}
if (output_units.pressure == PSI) {
if (output_units.pressure == PSI)
pressure = mbar_to_PSI(mbar);
} else
else
pressure = mbar / 1000.0;
*p = pressure;
}
*v = volume;
*p = pressure;
}
static int convert_weight(int grams, double *m)