30 августа воскресенье
(Вчера), Редакция Рунет | 👁 521

Telegram Desktop удалил 800 ГБ файлов на Windows из-за бага

Пользователь Telegram Desktop сообщил об ошибке в мессенджере, которая привела к потере около 800 ГБ данных на компьютере с Windows. Проблема связана с проверкой орфографии, из-за которой Telegram мог рекурсивно удалять содержимое папки custom в корне диска. Об этом сообщает «Код Дурова».

«Популярность продукта и количество его пользователей от простых ошибок не защищают. Иногда между «починили пользовательский словарь» и «удалили 800 ГБ данных» находится всего несколько строк кода», — сообщает «Код Дурова».

Автор истории рассказал, что после запуска компьютера некоторые программы перестали открываться, так как их исполняемые файлы исчезли. В папке C:custom, где хранились программы, проекты и другие данные, почти ничего не осталось. Всего там находилось около 800 ГБ файлов. Он выяснил, что файлы исчезают после запуска Telegram Desktop. Переустановка мессенджера в другую папку не решила проблему: созданный для проверки файл внутри C:custom после запуска Telegram снова удалился.

Изучив происходящее с помощью Process Monitor, пользователь заметил, что Telegram обращался к C:custom, просматривал вложенные папки и пытался удалять находящиеся там файлы. Он отправил репорт о баге в репозитории Telegram Desktop на GitHub, указав, что проблема проявлялась в версии 7.1.1, но отсутствовала в версии 6.9.4.

Причина бага связана с механизмом проверки орфографии. Telegram хранит добавленные пользователем слова в файле custom. В версии 7.1.0 изменили работу пользовательского словаря со встроенной в Windows проверкой орфографии, но путь к файлу словаря задавался после участка кода, который при использовании системной проверки завершал функцию. Из-за этого путь оставался пустым.

Затем библиотека формировала путь к пользовательскому словарю, добавляя к пустому значению /custom. Qt интерпретировал его как папку custom в корне текущего диска. Код ожидал обнаружить там файл, но если по этому пути находилась папка, запускалось её рекурсивное удаление. Удалялись только те файлы, к которым приложение получало необходимый доступ.

Баг присутствовал в версиях Telegram Desktop 7.1.0 и 7.1.1. Разработчики исправили его, перенеся установку пути к словарю до досрочного завершения функции и добавив в библиотеку проверки орфографии дополнительную защиту от пустого пути. Исправления вошли в Telegram Desktop 7.1.2. В официальном списке изменений это описано как исправление сохранения слов при использовании системной проверки орфографии. Ошибка подтверждена на Windows со встроенной системной проверкой орфографии. На Linux и macOS такую же цепочку действий не обнаружили.

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе всех новостей и событий Рунета.

Комментарии 0
Зарегистрируйтесь или , чтобы оставлять комментарии.
Читайте нас в удобном формате: