# HG changeset patch # User Simon Sapin # Date 1606304017 -3600 # Node ID f5d62f4d53273a2a5593cbcd34ce97d3333d81fe # Parent 2ad2745e0be9eae528cbd001c013f2282478e583 rhg: check that .hg/requires is ASCII Differential Revision: https://phab.mercurial-scm.org/D9400 diff -r 2ad2745e0be9 -r f5d62f4d5327 rust/hg-core/src/requirements.rs --- a/rust/hg-core/src/requirements.rs Tue Nov 24 18:52:38 2020 +0100 +++ b/rust/hg-core/src/requirements.rs Wed Nov 25 12:33:37 2020 +0100 @@ -24,7 +24,7 @@ .map(|line| { // Python uses Unicode `str.isalnum` but feature names are all // ASCII - if line[0].is_ascii_alphanumeric() { + if line[0].is_ascii_alphanumeric() && line.is_ascii() { Ok(String::from_utf8(line.into()).unwrap()) } else { Err(()) diff -r 2ad2745e0be9 -r f5d62f4d5327 tests/test-rhg.t --- a/tests/test-rhg.t Tue Nov 24 18:52:38 2020 +0100 +++ b/tests/test-rhg.t Wed Nov 25 12:33:37 2020 +0100 @@ -140,3 +140,8 @@ sparserevlog store indoor-pool + + $ echo -e '\xFF' >> .hg/requires + $ rhg debugrequirements + abort: .hg/requires is corrupted + [255]