aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Huss <eric@huss.org>2019-04-05 13:51:28 -0700
committerEric Huss <eric@huss.org>2019-04-05 13:51:28 -0700
commitc53ed53659f6fbbc1257ee028d4b6e8f06193fdb (patch)
treeea03c5625956b1ca1271e20dc18e8bb7e59eaedf
parent166d8f08b3bb70b878664a6689904924c72ab7d6 (diff)
downloadmilf-rs-c53ed53659f6fbbc1257ee028d4b6e8f06193fdb.tar.gz
milf-rs-c53ed53659f6fbbc1257ee028d4b6e8f06193fdb.zip
Fix float with invalid suffix.
-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