# HG changeset patch # User Arseniy Alekseyev # Date 1679685577 0 # Node ID 3f5137543773762e0f8f8384e656eec018229d2f # Parent 0b84474ebd0a693b8f6f6e7c8dfc1fcfa0a9504c rhg: don't crash on empty directory names in path_encode, just in case I don't expect that to be possible, but there's nothing in path_encode.rs that prevents it, and the old code didn't crash in this case, so it's better to be defensive. diff -r 0b84474ebd0a -r 3f5137543773 rust/hg-core/src/revlog/path_encode.rs --- a/rust/hg-core/src/revlog/path_encode.rs Fri Mar 24 19:02:46 2023 +0000 +++ b/rust/hg-core/src/revlog/path_encode.rs Fri Mar 24 19:19:37 2023 +0000 @@ -545,15 +545,15 @@ 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' ' { + } + if let Some(last_char) = slice.last() { + if *last_char == b'.' || *last_char == b' ' { dest.write_bytes(&slice[0..slice.len() - 1]); dest.write_byte(b'_'); } else { dest.write_bytes(slice); } - } + }; dest.write_byte(b'/'); } }