Error when parsing numbers outside of f64's range
This commit is contained in:
parent
5170d66d51
commit
90040b34b6
|
@ -893,6 +893,12 @@ impl<'a> Deserializer<'a> {
|
||||||
}
|
}
|
||||||
number.parse().map_err(|_e| {
|
number.parse().map_err(|_e| {
|
||||||
self.error(start, ErrorKind::NumberInvalid)
|
self.error(start, ErrorKind::NumberInvalid)
|
||||||
|
}).and_then(|n: f64| {
|
||||||
|
if n.is_finite() {
|
||||||
|
Ok(n)
|
||||||
|
} else {
|
||||||
|
Err(self.error(start, ErrorKind::NumberInvalid))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,4 +10,8 @@ fn bad() {
|
||||||
bad("a = 1__1");
|
bad("a = 1__1");
|
||||||
bad("a = 1_");
|
bad("a = 1_");
|
||||||
bad("''");
|
bad("''");
|
||||||
|
bad("a = nan");
|
||||||
|
bad("a = -inf");
|
||||||
|
bad("a = inf");
|
||||||
|
bad("a = 9e99999");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue