added explicit tests for .. in paths
fixes #63
diff --git a/src/metadata.rs b/src/metadata.rs
index 777cb16..7d401bc 100644
--- a/src/metadata.rs
+++ b/src/metadata.rs
@@ -1464,6 +1464,24 @@
const ED25519_4_PK8: &'static [u8] = include_bytes!("../tests/ed25519/ed25519-4.pk8.der");
#[test]
+ fn no_pardir_in_target_path() {
+ let bad_paths = &[
+ "..",
+ "../some/path",
+ "../some/path/",
+ "some/../path",
+ "some/../path/..",
+ ];
+
+ for path in bad_paths.iter() {
+ assert!(safe_path(*path).is_err());
+ assert!(TargetPath::new(path.to_string()).is_err());
+ assert!(MetadataPath::new(path.to_string()).is_err());
+ assert!(VirtualTargetPath::new(path.to_string()).is_err());
+ }
+ }
+
+ #[test]
fn path_matches_chain() {
let test_cases: &[(bool, &str, &[&[&str]])] =
&[