Skip to content
This repository was archived by the owner on Jun 1, 2025. It is now read-only.
This repository was archived by the owner on Jun 1, 2025. It is now read-only.

Cерьезный баг! #52

@sasha675

Description

@sasha675

Cерьезный баг!!!
При первой-же попытке получения файла из хранилища возникает ошибка 401, при этом удаляется каталог назначения со всем содержимым! Если у пользователя есть права на удаление или запись указанного каталога в системе. Благо тестировал на пустой тестовой несущественной машине.
Баг срабатывает если указать путь сохранения без названия файла:
ydcmd get disk:/test100M /opt/ydisk/ --config=/usr/local/etc/ydcmd.cfg --debug --verbose
при указании имени файла назначения баг не проявляется:
ydcmd get disk:/test100M /opt/ydisk/1.f --config=/usr/local/etc/ydcmd.cfg --debug --verbose

ydcmd get disk:/test100M /opt/ydisk/ --config=/usr/local/etc/ydcmd.cfg --debug --verbose --progress ] ETA: 0:18:30
--> GET https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2Fterra.ova&offset=0&limit=0
--> Connected to cloud-api.yandex.net:443 (TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256)
--> rm -r /opt/ydisk/

^^строчка в дебаге^^
При получении файла, она зачем? При этом скрипт сначала удаляет каталог сохранения а потом выводит ошибку 401, которая естественно появится после удаления каталога указанного в параметрах команды.
При получении файла, удалять никакие каталоги нельзя ни при каких обстоятельствах.
В случае несоответствия условиям проверки типа файла, в место удаления, необходимо завершать скрипт с выводом кода завершения, и/или подробным сообщением об ошибке в консоль, либо syslog.

Учитывая что в тексте скрипта используется целая функция для определения что удалять с подробными комментариями, то это баг логики скрипта, который в случае исполнения команды в домашнем каталоге и ошибки в команде, легко удаляет домашний каталог пользователя со всеми профилями, настройками и возможно личными данными! Что во многих случаях может привести к потере очень важной информации.

Любая версия, хоть бинарная, хоть из Git.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions