[bug] Windows-to-Linux remote mount is allowing directory rename when directory is not empty #47
Some checks failed
BlockStorage/repertory/pipeline/head There was a failure building this commit

This commit is contained in:
Scott E. Graves 2025-04-16 11:22:03 -05:00
parent 7487caca2a
commit 011d32f9cf
3 changed files with 41 additions and 28 deletions

View File

@ -1740,6 +1740,7 @@ auto remote_server::update_to_windows_format(const std::string &root_api_path,
} }
item[JSON_DIRECTORY] = true; item[JSON_DIRECTORY] = true;
meta[META_DIRECTORY] = utils::string::to_bool(true);
item[JSON_META] = meta; item[JSON_META] = meta;
} }

View File

@ -314,20 +314,26 @@ auto base_provider::get_directory_items(const std::string &api_path,
(item1.api_path.compare(item2.api_path) < 0)); (item1.api_path.compare(item2.api_path) < 0));
}); });
list.insert(list.begin(), directory_item{ list.insert(list.begin(),
"..", directory_item{
"", "..",
true, "",
0U, true,
{}, 0U,
}); {
list.insert(list.begin(), directory_item{ {META_DIRECTORY, utils::string::from_bool(true)},
".", },
"", });
true, list.insert(list.begin(),
0U, directory_item{
{}, ".",
}); "",
true,
0U,
{
{META_DIRECTORY, utils::string::from_bool(true)},
},
});
return api_error::success; return api_error::success;
} }

View File

@ -284,20 +284,26 @@ auto encrypt_provider::get_directory_items(const std::string &api_path,
(item1.api_path.compare(item2.api_path) < 0)); (item1.api_path.compare(item2.api_path) < 0));
}); });
list.insert(list.begin(), directory_item{ list.insert(list.begin(),
"..", directory_item{
"", "..",
true, "",
0U, true,
{}, 0U,
}); {
list.insert(list.begin(), directory_item{ {META_DIRECTORY, utils::string::from_bool(true)},
".", },
"", });
true, list.insert(list.begin(),
0U, directory_item{
{}, ".",
}); "",
true,
0U,
{
{META_DIRECTORY, utils::string::from_bool(true)},
},
});
return api_error::success; return api_error::success;
}); });
} }