Show More
@@ -46,8 +46,13 b' pub fn run(invocation: &crate::CliInvoca' | |||
|
46 | 46 | |
|
47 | 47 | let mut files = vec![]; |
|
48 | 48 | for file in file_args.iter() { |
|
49 | let normalized = cwd.join(&file); | |
|
49 | 50 | // TODO: actually normalize `..` path segments etc? |
|
50 | let normalized = cwd.join(&file); | |
|
51 | let dotted = normalized.components().any(|c| c.as_os_str() == ".."); | |
|
52 | if file == &"." || dotted { | |
|
53 | let message = "`..` or `.` path segment"; | |
|
54 | return Err(CommandError::unsupported(message)); | |
|
55 | } | |
|
51 | 56 | let stripped = normalized |
|
52 | 57 | .strip_prefix(&working_directory) |
|
53 | 58 | // TODO: error message for path arguments outside of the repo |
@@ -199,6 +199,17 b' Fallback to Python' | |||
|
199 | 199 | |
|
200 | 200 | [252] |
|
201 | 201 | |
|
202 | Fallback with shell path segments | |
|
203 | $ $NO_FALLBACK rhg cat . | |
|
204 | unsupported feature: `..` or `.` path segment | |
|
205 | [252] | |
|
206 | $ $NO_FALLBACK rhg cat .. | |
|
207 | unsupported feature: `..` or `.` path segment | |
|
208 | [252] | |
|
209 | $ $NO_FALLBACK rhg cat ../.. | |
|
210 | unsupported feature: `..` or `.` path segment | |
|
211 | [252] | |
|
212 | ||
|
202 | 213 | Requirements |
|
203 | 214 | $ $NO_FALLBACK rhg debugrequirements |
|
204 | 215 | dotencode |
General Comments 0
You need to be logged in to leave comments.
Login now