From 02e0b14d8fa025a5db410d60a7c0dfebd536aaeb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 6 Nov 2016 23:40:54 -0800
Subject: [PATCH] Musl does not have _r versions of getent() and getpwent()
 APIs

Taken from gentoo
http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.3.9-remove-getpwent_r.patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 source4/torture/local/nss_tests.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
index 2cd6122..04f13c6 100644
--- a/source4/torture/local/nss_tests.c
+++ b/source4/torture/local/nss_tests.c
@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx,
 	return true;
 }
 
-
 static bool test_getgrgid(struct torture_context *tctx,
 			  gid_t gid,
 			  struct group *grp_p)
@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx,
 	return true;
 }
 
+#if HAVE_GETPWENT_R
 static bool test_enum_r_passwd(struct torture_context *tctx,
 			       struct passwd **pwd_array_p,
 			       size_t *num_pwd_p)
@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
 
 	return true;
 }
+#endif
 
 static bool torture_assert_passwd_equal(struct torture_context *tctx,
 					const struct passwd *p1,
@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx)
 	struct passwd *pwd, pwd1, pwd2;
 	size_t num_pwd;
 
-	torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd),
+	torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd),
 						"failed to enumerate passwd");
 
 	for (i=0; i < num_pwd; i++) {
@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
 	struct passwd *pwd, pwd1, pwd2, pwd3, pwd4;
 	size_t num_pwd;
 
-	torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd),
+	torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd),
 						"failed to enumerate passwd");
 
 	for (i=0; i < num_pwd; i++) {
@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx,
 	return true;
 }
 
+#if HAVE_GETGRENT_R
 static bool test_enum_r_group(struct torture_context *tctx,
 			      struct group **grp_array_p,
 			      size_t *num_grp_p)
@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
 
 	return true;
 }
+#endif
 
 static bool torture_assert_group_equal(struct torture_context *tctx,
 				       const struct group *g1,
@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx)
 	struct group *grp, grp1, grp2;
 	size_t num_grp;
 
-	torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp),
+	torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp),
 					       "failed to enumerate group");
 
 	for (i=0; i < num_grp; i++) {
@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
 	struct group *grp, grp1, grp2, grp3, grp4;
 	size_t num_grp;
 
-	torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp),
+	torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp),
 					       "failed to enumerate group");
 
 	for (i=0; i < num_grp; i++) {
