Add some assert guard around gas finding code

The code would have leaved gasidx undefined if it doesn't find a correct
gas, so this asserts instead of using uninitialized variables as array
index.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2013-12-07 23:54:14 +01:00 committed by Dirk Hohndel
parent d84f397790
commit 28943d2def

View file

@ -4,6 +4,7 @@
* *
* (c) Dirk Hohndel 2013 * (c) Dirk Hohndel 2013
*/ */
#include <assert.h>
#include <unistd.h> #include <unistd.h>
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
@ -409,6 +410,7 @@ static struct gaschanges *analyze_gaslist(struct diveplan *diveplan, struct dive
i++; i++;
} }
gaschanges[i].depth = dp->depth; gaschanges[i].depth = dp->depth;
gaschanges[i].gasidx = -1;
do { do {
if (dive->cylinder[j].gasmix.o2.permille == dp->o2 && if (dive->cylinder[j].gasmix.o2.permille == dp->o2 &&
dive->cylinder[j].gasmix.he.permille == dp->he) { dive->cylinder[j].gasmix.he.permille == dp->he) {
@ -417,6 +419,7 @@ static struct gaschanges *analyze_gaslist(struct diveplan *diveplan, struct dive
} }
j++; j++;
} while (j < MAX_CYLINDERS); } while (j < MAX_CYLINDERS);
assert(gaschanges[i].gasidx != -1);
} }
dp = dp->next; dp = dp->next;
} }