diff --git a/src/de.rs b/src/de.rs index 6b7c43b..b23f03f 100644 --- a/src/de.rs +++ b/src/de.rs @@ -1396,6 +1396,8 @@ impl<'a> Deserializer<'a> { return Err(self.error(start, ErrorKind::NumberInvalid)); } exponent = Some(a); + } else if !suffix.is_empty() { + return Err(self.error(start, ErrorKind::NumberInvalid)); } let mut number = integral diff --git a/test-suite/tests/invalid.rs b/test-suite/tests/invalid.rs index 9f36e2c..820c48b 100644 --- a/test-suite/tests/invalid.rs +++ b/test-suite/tests/invalid.rs @@ -38,6 +38,8 @@ test!(empty_table, include_str!("invalid/empty-table.toml")); test!(float_no_leading_zero, include_str!("invalid/float-no-leading-zero.toml")); +test!(float_no_suffix, + include_str!("invalid/float-no-suffix.toml")); test!(float_no_trailing_digits, include_str!("invalid/float-no-trailing-digits.toml")); test!(key_after_array, diff --git a/test-suite/tests/invalid/float-no-suffix.toml b/test-suite/tests/invalid/float-no-suffix.toml new file mode 100644 index 0000000..76106de --- /dev/null +++ b/test-suite/tests/invalid/float-no-suffix.toml @@ -0,0 +1 @@ +a = 1.2f