aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/de.rs2
-rw-r--r--test-suite/tests/invalid.rs2
-rw-r--r--test-suite/tests/invalid/float-no-suffix.toml1
3 files changed, 5 insertions, 0 deletions
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