cargo install перестал паниковать на имени пакета с многобайтовым символом
01.12.2025cargo install теперь правильно проверяет имена пакетов. Раньше строка, начинающаяся с многобайтового символа, приводила к выходу за границы массива и панике.
Как это воспроизводится
Имя крейта должно состоять из латинских букв, цифр и некоторых знаков. Но при копировании из другой программы или наборе на мобильной клавиатуре вместо дефиса легко появляется символ, который выглядит похожим, но не является им, — например, тире.
Прежний код исходил из того, что получает только ASCII, и на таком символе вычислял индекс за границей строки.
Почему это важнее, чем мелкий баг
Паника в инструменте сборки — худший вид отказа: команда не сообщает об ошибке пользователя, а падает с сообщением о внутренней проблеме. То есть человек получает стектрейс компилятора Cargo вместо ответа «так называть пакет нельзя».
Теперь имя проверяется, и сообщение об ошибке корректное.
Оригинал
properly validate crate names in cargo install
Упоминаний: 1 · Просмотров: 2