Skip to content
Snippets Groups Projects

rhg: fix a recently introduced bug in path_encode

Merged Arseniy Alekseyev requested to merge topic/stable/fix-path_encode-bug into branch/stable
@@ -540,9 +540,10 @@
let mut dest = Vec::with_capacity(MAXSTOREPATHLEN);
dest.write_bytes(b"dh/");
if let Some(last_slash) = last_slash {
for slice in src[..last_slash].split(|b| *b == b'/') {
let slice = &slice[..std::cmp::min(slice.len(), dirprefixlen)];
if dest.len() + slice.len() > maxshortdirslen + 3 {
break;
} else {
@@ -543,11 +544,14 @@
if let Some(last_slash) = last_slash {
for slice in src[..last_slash].split(|b| *b == b'/') {
let slice = &slice[..std::cmp::min(slice.len(), dirprefixlen)];
if dest.len() + slice.len() > maxshortdirslen + 3 {
break;
} else {
let last_char = slice[slice.len() - 1];
if last_char == b'.' || last_char == b' ' {
let mut erase_last_char = false;
if let Some(last_char) = slice.last() {
erase_last_char = *last_char == b'.' || *last_char == b' '
};
if erase_last_char {
dest.write_bytes(&slice[0..slice.len() - 1]);
dest.write_byte(b'_');
} else {
Loading