diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2005-05-20 22:37:19 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2005-05-20 22:37:19 +0000 |
commit | f6b2208a91f4f1a0524d65e6be755196d5b3d85d (patch) | |
tree | adb289d6ff4313d1f4131901b5f8ac103ad175f3 /nmea_parse.c | |
parent | b9a9b52cffbc242fb0b9bed7bbbe9edb235edcc8 (diff) | |
download | gpsd-f6b2208a91f4f1a0524d65e6be755196d5b3d85d.tar.gz |
Head off the too-many-satellites error.
Diffstat (limited to 'nmea_parse.c')
-rw-r--r-- | nmea_parse.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/nmea_parse.c b/nmea_parse.c index ddba4531..3e6baf13 100644 --- a/nmea_parse.c +++ b/nmea_parse.c @@ -349,6 +349,11 @@ static int processGPGSV(int count, char *field[], struct gps_data_t *out) gpsd_zero_satellites(out); for (fldnum = 4; fldnum < count; ) { + if (out->satellites >= MAXCHANNELS) { + gpsd_report(0, "internal error - too many satellites!\n"); + gpsd_zero_satellites(out); + break; + } out->PRN[out->satellites] = atoi(field[fldnum++]); out->elevation[out->satellites] = atoi(field[fldnum++]); out->azimuth[out->satellites] = atoi(field[fldnum++]); |