From c15665b2d06b7f863ac5cb733bd9aed9ae730cd3 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Mon, 20 Nov 2017 13:43:01 -0800 Subject: [PATCH 1/2] fix expected vs actual for easier troubleshooting --- src/libpsl-native/test/test-createsymlink.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libpsl-native/test/test-createsymlink.cpp b/src/libpsl-native/test/test-createsymlink.cpp index 9bd96f346f3..42f186b2951 100644 --- a/src/libpsl-native/test/test-createsymlink.cpp +++ b/src/libpsl-native/test/test-createsymlink.cpp @@ -92,7 +92,7 @@ TEST_F(CreateSymLinkTest, SymLinkToFile) std::string target = FollowSymLink(fileSymLink.c_str()); char buffer[PATH_MAX]; std::string expected = realpath(file, buffer); - EXPECT_EQ(target, expected); + EXPECT_EQ(expected, target); } TEST_F(CreateSymLinkTest, SymLinkToDirectory) @@ -103,7 +103,7 @@ TEST_F(CreateSymLinkTest, SymLinkToDirectory) std::string target = FollowSymLink(dirSymLink.c_str()); char buffer[PATH_MAX]; std::string expected = realpath(dir, buffer); - EXPECT_EQ(target, expected); + EXPECT_EQ(expected, target); } TEST_F(CreateSymLinkTest, SymLinkAgain) From 80ba61ea32905be19d834864209452ef201435d1 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Mon, 20 Nov 2017 14:39:39 -0800 Subject: [PATCH 2/2] replace strlen calls with strnlen --- src/libpsl-native/src/followsymlink.cpp | 2 +- src/libpsl-native/src/getfullyqualifiedname.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libpsl-native/src/followsymlink.cpp b/src/libpsl-native/src/followsymlink.cpp index 6f32d697d77..033160fae67 100644 --- a/src/libpsl-native/src/followsymlink.cpp +++ b/src/libpsl-native/src/followsymlink.cpp @@ -39,7 +39,7 @@ char* FollowSymLink(const char* fileName) if (realPath) { - return strndup(realPath, strlen(realPath) + 1); + return strndup(realPath, strnlen(realPath, PATH_MAX)); } // if the path wasn't resolved, use readlink diff --git a/src/libpsl-native/src/getfullyqualifiedname.cpp b/src/libpsl-native/src/getfullyqualifiedname.cpp index 75e5af4b367..12a3483ed7c 100644 --- a/src/libpsl-native/src/getfullyqualifiedname.cpp +++ b/src/libpsl-native/src/getfullyqualifiedname.cpp @@ -43,7 +43,7 @@ char *GetFullyQualifiedName() } // return the first canonical name in the list - fullName = strndup(info->ai_canonname, strlen(info->ai_canonname)); + fullName = strndup(info->ai_canonname, strnlen(info->ai_canonname, NI_MAXHOST)); // only free info if getaddrinfo was successful freeaddrinfo(info);