diff --git a/minmea.c b/minmea.c index c96b392..5f2369b 100644 --- a/minmea.c +++ b/minmea.c @@ -180,6 +180,10 @@ bool minmea_scan(const char *sentence, const char *format, ...) goto parse_error; } } + if (scale > (INT_LEAST32_MAX / 10)) { + /* truncate extra precision */ + break; + } value = (10 * value) + digit; if (scale) scale *= 10;