Make fill_missing_tank_pressures robust against missing cylinder info

The code iterates over a list that can be NULL, but happily dereferenced
it anyway.  Oops.

This function really should be split up and commented more.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2012-08-18 09:05:51 -07:00
parent 1a05f34ae8
commit 52c3d11d2c

View file

@ -1049,16 +1049,18 @@ static void fill_missing_tank_pressures(struct plot_info *pi, pr_track_t **track
/* there may be multiple segments - so
* let's assemble the length */
nlist = list;
pt = list->pressure_time;
while (!nlist->end) {
nlist = nlist->next;
if (!nlist) {
/* oops - we have no end pressure,
* so this means this is a tank without
* gas consumption information */
break;
if (list) {
pt = list->pressure_time;
while (!nlist->end) {
nlist = nlist->next;
if (!nlist) {
/* oops - we have no end pressure,
* so this means this is a tank without
* gas consumption information */
break;
}
pt += nlist->pressure_time;
}
pt += nlist->pressure_time;
}
if (!nlist) {
/* just continue without calculating