[libc-commits] [libc] [libc] Add getpwnam_r and getpwuid_r entrypoints (PR #220833)

via libc-commits libc-commits at lists.llvm.org
Thu Sep 3 00:34:32 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- libc/src/pwd/getpwnam_r.cpp libc/src/pwd/getpwnam_r.h libc/src/pwd/getpwuid_r.cpp libc/src/pwd/getpwuid_r.h libc/test/src/pwd/getpwnam_r_test.cpp libc/test/src/pwd/getpwuid_r_test.cpp libc/src/pwd/pwd_utils.cpp libc/src/pwd/pwd_utils.h --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/libc/test/src/pwd/getpwnam_r_test.cpp b/libc/test/src/pwd/getpwnam_r_test.cpp
index a33a2bd28..5aa5cb96b 100644
--- a/libc/test/src/pwd/getpwnam_r_test.cpp
+++ b/libc/test/src/pwd/getpwnam_r_test.cpp
@@ -44,7 +44,8 @@ public:
   const char *get_path() const { return path; }
 };
 
-class LlvmLibcGetpwnamRTest : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
+class LlvmLibcGetpwnamRTest
+    : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
 
 } // namespace
 
@@ -60,8 +61,8 @@ TEST_F(LlvmLibcGetpwnamRTest, Success) {
   char buffer[256];
   struct passwd *result = nullptr;
 
-  int ret = LIBC_NAMESPACE::getpwnam_r("bin", &pwd, buffer, sizeof(buffer),
-                                       &result);
+  int ret =
+      LIBC_NAMESPACE::getpwnam_r("bin", &pwd, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, 0);
   ASSERT_EQ(result, &pwd);
   ASSERT_STREQ(pwd.pw_name, "bin");
@@ -95,8 +96,8 @@ TEST_F(LlvmLibcGetpwnamRTest, FirstAndLastEntries) {
 
   // Lookup the last entry
   result = nullptr;
-  ret = LIBC_NAMESPACE::getpwnam_r("last", &pwd, buffer, sizeof(buffer),
-                                   &result);
+  ret =
+      LIBC_NAMESPACE::getpwnam_r("last", &pwd, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, 0);
   ASSERT_EQ(result, &pwd);
   ASSERT_STREQ(pwd.pw_name, "last");
@@ -141,8 +142,8 @@ TEST_F(LlvmLibcGetpwnamRTest, InvalidArguments) {
   struct passwd *result = nullptr;
 
   // Null result pointer
-  int ret = LIBC_NAMESPACE::getpwnam_r("root", &pwd, buffer, sizeof(buffer),
-                                       nullptr);
+  int ret =
+      LIBC_NAMESPACE::getpwnam_r("root", &pwd, buffer, sizeof(buffer), nullptr);
   ASSERT_EQ(ret, EINVAL);
 
   // Null name
diff --git a/libc/test/src/pwd/getpwuid_r_test.cpp b/libc/test/src/pwd/getpwuid_r_test.cpp
index 711918ea2..3a9876001 100644
--- a/libc/test/src/pwd/getpwuid_r_test.cpp
+++ b/libc/test/src/pwd/getpwuid_r_test.cpp
@@ -45,7 +45,8 @@ public:
   const char *get_path() const { return path; }
 };
 
-class LlvmLibcGetpwuidRTest : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
+class LlvmLibcGetpwuidRTest
+    : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
 
 } // namespace
 
@@ -62,8 +63,8 @@ TEST_F(LlvmLibcGetpwuidRTest, Success) {
   char buffer[256];
   struct passwd *result = nullptr;
 
-  int ret = LIBC_NAMESPACE::getpwuid_r(1, &pwd, buffer, sizeof(buffer),
-                                       &result);
+  int ret =
+      LIBC_NAMESPACE::getpwuid_r(1, &pwd, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, 0);
   ASSERT_EQ(result, &pwd);
   ASSERT_STREQ(pwd.pw_name, "bin");
@@ -74,8 +75,8 @@ TEST_F(LlvmLibcGetpwuidRTest, Success) {
 
   // Lookup high UID (nobody)
   result = nullptr;
-  ret = LIBC_NAMESPACE::getpwuid_r(65534, &pwd, buffer, sizeof(buffer),
-                                   &result);
+  ret =
+      LIBC_NAMESPACE::getpwuid_r(65534, &pwd, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, 0);
   ASSERT_EQ(result, &pwd);
   ASSERT_STREQ(pwd.pw_name, "nobody");
@@ -93,8 +94,8 @@ TEST_F(LlvmLibcGetpwuidRTest, RootUidZero) {
   char buffer[256];
   struct passwd *result = nullptr;
 
-  int ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer),
-                                       &result);
+  int ret =
+      LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, 0);
   ASSERT_EQ(result, &pwd);
   ASSERT_STREQ(pwd.pw_name, "root");
@@ -111,8 +112,8 @@ TEST_F(LlvmLibcGetpwuidRTest, NotFound) {
   char buffer[256];
   struct passwd *result = reinterpret_cast<struct passwd *>(0xdeadbeef);
 
-  int ret = LIBC_NAMESPACE::getpwuid_r(999, &pwd, buffer, sizeof(buffer),
-                                       &result);
+  int ret =
+      LIBC_NAMESPACE::getpwuid_r(999, &pwd, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, 0);
   ASSERT_EQ(result, static_cast<struct passwd *>(nullptr));
 }
@@ -139,19 +140,17 @@ TEST_F(LlvmLibcGetpwuidRTest, InvalidArguments) {
   struct passwd *result = nullptr;
 
   // Null result pointer
-  int ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer),
-                                       nullptr);
+  int ret =
+      LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer), nullptr);
   ASSERT_EQ(ret, EINVAL);
 
   // Null pwd pointer
-  ret = LIBC_NAMESPACE::getpwuid_r(0, nullptr, buffer, sizeof(buffer),
-                                   &result);
+  ret = LIBC_NAMESPACE::getpwuid_r(0, nullptr, buffer, sizeof(buffer), &result);
   ASSERT_EQ(ret, EINVAL);
   ASSERT_EQ(result, static_cast<struct passwd *>(nullptr));
 
   // Null buffer pointer
-  ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, nullptr, sizeof(buffer),
-                                   &result);
+  ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, nullptr, sizeof(buffer), &result);
   ASSERT_EQ(ret, EINVAL);
   ASSERT_EQ(result, static_cast<struct passwd *>(nullptr));
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/220833


More information about the libc-commits mailing list