blob: 3b0ef5e5a3f651a276c5da3e96c5ab384e5e7ec3 [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001From 7d5e205aa58a10e7b1ccc2fa75b443508a5c3e18 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 20 Jan 2016 04:31:59 +0000
4Subject: [PATCH] make netgroup support configurable
5
6Disable using innetgr and *netigrent function if not available
7
8These functions are not available on all libc implementations e.g. musl
9doesnt have them.
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13Upstream-Status: Pending
14
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080015Rebase to 0.115
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17---
Patrick Williamsb48b7b42016-08-17 15:04:38 -050018 configure.ac | 2 +-
19 src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080020 src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++
21 3 files changed, 8 insertions(+), 2 deletions(-)
Patrick Williamsb48b7b42016-08-17 15:04:38 -050022
23diff --git a/configure.ac b/configure.ac
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080024index 8b3e1b1..1c392df 100644
Patrick Williamsb48b7b42016-08-17 15:04:38 -050025--- a/configure.ac
26+++ b/configure.ac
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080027@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
Patrick Williamsb48b7b42016-08-17 15:04:38 -050028 [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
29 AC_SUBST(EXPAT_LIBS)
30
31-AC_CHECK_FUNCS(clearenv fdatasync)
32+AC_CHECK_FUNCS(clearenv fdatasync getnetgrent innetgr)
33
34 if test "x$GCC" = "xyes"; then
35 LDFLAGS="-Wl,--as-needed $LDFLAGS"
36diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080037index cb6fdab..de3f752 100644
Patrick Williamsb48b7b42016-08-17 15:04:38 -050038--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
39+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080040@@ -2224,7 +2224,7 @@ get_users_in_group (PolkitIdentity *group,
Patrick Williamsb48b7b42016-08-17 15:04:38 -050041 out:
42 return ret;
43 }
44-
45+#if defined HAVE_GETNETGRENT
46 static GList *
47 get_users_in_net_group (PolkitIdentity *group,
48 gboolean include_root)
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080049@@ -2285,6 +2285,8 @@ get_users_in_net_group (PolkitIdentity *group,
Patrick Williamsb48b7b42016-08-17 15:04:38 -050050 return ret;
51 }
52
53+#endif
54+
55 /* ---------------------------------------------------------------------------------------------------- */
56
57 static void
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080058@@ -2369,10 +2371,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
Patrick Williamsb48b7b42016-08-17 15:04:38 -050059 {
60 user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE));
61 }
62+#if defined HAVE_GETNETGRENT
63 else if (POLKIT_IS_UNIX_NETGROUP (identity))
64 {
65 user_identities = g_list_concat (user_identities, get_users_in_net_group (identity, FALSE));
66 }
67+#endif
68 else
69 {
70 g_warning ("Unsupported identity");
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080071diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
72index 517f3c6..6042dd2 100644
73--- a/src/polkitbackend/polkitbackendjsauthority.cpp
74+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
75@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
76 user = JS_EncodeString (cx, args[0].toString());
77 netgroup = JS_EncodeString (cx, args[1].toString());
Patrick Williamsb48b7b42016-08-17 15:04:38 -050078
79+#if defined HAVE_INNETGR
80 if (innetgr (netgroup,
81 NULL, /* host */
82 user,
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080083@@ -1509,6 +1510,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
Patrick Williamsb48b7b42016-08-17 15:04:38 -050084 {
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080085 is_in_netgroup = true;
Patrick Williamsb48b7b42016-08-17 15:04:38 -050086 }
87+#endif
88
89 JS_free (cx, netgroup);
90 JS_free (cx, user);
Patrick Williamsb48b7b42016-08-17 15:04:38 -050091--
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800922.7.4
Patrick Williamsb48b7b42016-08-17 15:04:38 -050093