From 7d5e205aa58a10e7b1ccc2fa75b443508a5c3e18 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 20 Jan 2016 04:31:59 +0000
Subject: [PATCH] make netgroup support configurable

Disable using innetgr and *netigrent function if not available

These functions are not available on all libc implementations e.g. musl
doesnt have them.

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

Rebase to 0.115
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 configure.ac                                          | 2 +-
 src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
 src/polkitbackend/polkitbackendjsauthority.cpp        | 2 ++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 8b3e1b1..1c392df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
 	     [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
 AC_SUBST(EXPAT_LIBS)
 
-AC_CHECK_FUNCS(clearenv fdatasync)
+AC_CHECK_FUNCS(clearenv fdatasync getnetgrent innetgr)
 
 if test "x$GCC" = "xyes"; then
   LDFLAGS="-Wl,--as-needed $LDFLAGS"
diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
index cb6fdab..de3f752 100644
--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
@@ -2224,7 +2224,7 @@ get_users_in_group (PolkitIdentity                    *group,
  out:
   return ret;
 }
-
+#if defined HAVE_GETNETGRENT
 static GList *
 get_users_in_net_group (PolkitIdentity                    *group,
                         gboolean                           include_root)
@@ -2285,6 +2285,8 @@ get_users_in_net_group (PolkitIdentity                    *group,
   return ret;
 }
 
+#endif
+
 /* ---------------------------------------------------------------------------------------------------- */
 
 static void
@@ -2369,10 +2371,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent         *agent,
         {
           user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE));
         }
+#if defined HAVE_GETNETGRENT
       else if (POLKIT_IS_UNIX_NETGROUP (identity))
         {
           user_identities =  g_list_concat (user_identities, get_users_in_net_group (identity, FALSE));
         }
+#endif
       else
         {
           g_warning ("Unsupported identity");
diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
index 517f3c6..6042dd2 100644
--- a/src/polkitbackend/polkitbackendjsauthority.cpp
+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext  *cx,
   user = JS_EncodeString (cx, args[0].toString());
   netgroup = JS_EncodeString (cx, args[1].toString());
 
+#if defined HAVE_INNETGR
   if (innetgr (netgroup,
                NULL,  /* host */
                user,
@@ -1509,6 +1510,7 @@ js_polkit_user_is_in_netgroup (JSContext  *cx,
     {
       is_in_netgroup =  true;
     }
+#endif
 
   JS_free (cx, netgroup);
   JS_free (cx, user);
-- 
2.7.4

