Skip to content

Commit

Permalink
Run clang-format
Browse files Browse the repository at this point in the history
  • Loading branch information
SterlingT3485 committed Nov 20, 2024
1 parent 9f6d3ad commit f33c7c1
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
4 changes: 1 addition & 3 deletions src/common/file_system/local_file_system.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -253,12 +253,11 @@ bool isSubdirectory(const std::filesystem::path& base, const std::filesystem::pa
auto canonicalBase = std::filesystem::canonical(base);
auto canonicalSub = std::filesystem::canonical(sub);


std::string relative = std::filesystem::relative(canonicalSub, canonicalBase);
// Size check for a "." result.
// If the path starts with "..", it's not a subdirectory.
return !relative.empty() && !(relative.starts_with(".."));

} catch (const std::filesystem::filesystem_error& e) {
// Handle errors, e.g., if paths don't exist
std::cerr << "Filesystem error: " << e.what() << std::endl;
Expand All @@ -268,7 +267,6 @@ bool isSubdirectory(const std::filesystem::path& base, const std::filesystem::pa
return false;
}


void LocalFileSystem::removeFileIfExists(const std::string& path) {
if (!fileOrPathExists(path)) {
return;
Expand Down
1 change: 0 additions & 1 deletion src/main/database.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ std::string expandPath(main::ClientContext* context, const std::string& path) {
// Normalize the path to resolve '.' and '..'
std::filesystem::path normalizedPath = std::filesystem::absolute(fullPath).lexically_normal();
return normalizedPath.string();

}

void Database::initMembers(std::string_view dbPath, construct_bm_func_t initBmFunc) {
Expand Down
13 changes: 8 additions & 5 deletions test/c_api/database_test.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "c_api/kuzu.h"
#include "common/exception/io.h"
#include "common/file_system/virtual_file_system.h"
#include "graph_test/api_graph_test.h"
#include "gtest/gtest.h"
#include "common/file_system/virtual_file_system.h"
#include "common/exception/io.h"

using namespace kuzu::main;
using namespace kuzu::testing;
Expand Down Expand Up @@ -114,7 +114,8 @@ TEST_F(CApiDatabaseTest, VirtualFileSystemDeleteFiles) {
vfs.removeFileIfExists("/tmp/test1");
} catch (const kuzu::common::IOException& e) {
// Expected behavior
EXPECT_STREQ(e.what(), "IO exception: Error: Path /tmp/test1 is not within the allowed home directory /tmp/dbHome/");
EXPECT_STREQ(e.what(), "IO exception: Error: Path /tmp/test1 is not within the allowed "
"home directory /tmp/dbHome/");
}

vfs.removeFileIfExists("/tmp/dbHome/test1");
Expand All @@ -133,15 +134,17 @@ TEST_F(CApiDatabaseTest, VirtualFileSystemDeleteFilesEdge) {
std::filesystem::create_directories("/tmp/dbHome/../test2");
std::filesystem::create_directories("/tmp/dbHome/test2");

std::cout << "Resolved Path: " << std::filesystem::absolute("/tmp/dbHome/../test2") << std::endl;
std::cout << "Resolved Path: " << std::filesystem::absolute("/tmp/dbHome/../test2")
<< std::endl;
std::cout << "Exists: " << std::filesystem::exists("/tmp/test2") << std::endl;

// Attempt to delete files outside the home directory (should error)
try {
vfs.removeFileIfExists("/tmp/dbHome/../test2");
} catch (const kuzu::common::IOException& e) {
// Expected behavior
EXPECT_STREQ(e.what(), "IO exception: Error: Path /tmp/dbHome/../test2 is not within the allowed home directory /tmp/dbHome/");
EXPECT_STREQ(e.what(), "IO exception: Error: Path /tmp/dbHome/../test2 is not within the "
"allowed home directory /tmp/dbHome/");
}

vfs.removeFileIfExists("/tmp/dbHome/test2");
Expand Down

0 comments on commit f33c7c1

Please sign in to comment.