From 95596941915069a946464671f3729e3c24c7c102 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Tue, 21 Nov 2017 16:20:25 -0800 Subject: [PATCH] Replace strlen with strnlen in native code (#5510) * fix expected vs actual for easier troubleshooting * replace strlen calls with strnlen --- src/libpsl-native/src/followsymlink.cpp | 2 +- src/libpsl-native/src/getfullyqualifiedname.cpp | 2 +- src/libpsl-native/test/test-createsymlink.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libpsl-native/src/followsymlink.cpp b/src/libpsl-native/src/followsymlink.cpp index 6f32d697d..033160fae 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 75e5af4b3..12a3483ed 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); diff --git a/src/libpsl-native/test/test-createsymlink.cpp b/src/libpsl-native/test/test-createsymlink.cpp index 9bd96f346..42f186b29 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)