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.
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.