diff options
Diffstat (limited to 'user/polkit')
-rw-r--r-- | user/polkit/0001-make-netgroup-support-optional.patch | 480 | ||||
-rw-r--r-- | user/polkit/APKBUILD | 62 | ||||
-rw-r--r-- | user/polkit/CVE-2018-19788.patch | 183 | ||||
-rw-r--r-- | user/polkit/fix-consolekit-db-stat.patch | 6 | ||||
-rw-r--r-- | user/polkit/fix-parallel-make.patch | 40 |
5 files changed, 21 insertions, 750 deletions
diff --git a/user/polkit/0001-make-netgroup-support-optional.patch b/user/polkit/0001-make-netgroup-support-optional.patch deleted file mode 100644 index 1a7716c45..000000000 --- a/user/polkit/0001-make-netgroup-support-optional.patch +++ /dev/null @@ -1,480 +0,0 @@ -From aafb9fd0e79775146186ee1d7ffef1f76cdbc1bb Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> -Date: Wed, 11 Jul 2018 04:54:26 -0500 -Subject: [PATCH] make netgroup support optional - -On at least Linux/musl and Linux/uclibc, netgroup support is not -available. PolKit fails to compile on these systems for that reason. - -This change makes netgroup support conditional on the presence of the -setnetgrent(3) function which is required for the support to work. If -that function is not available on the system, an error will be returned -to the administrator if unix-netgroup: is specified in configuration. - -Fixes bug 50145. ---- - 0001-make-netgroup-support-optional.patch | 226 ++++++++++++++++++ - configure.ac | 2 +- - src/polkit/polkitidentity.c | 16 ++ - src/polkit/polkitunixnetgroup.c | 3 + - .../polkitbackendinteractiveauthority.c | 14 +- - .../polkitbackendjsauthority.cpp | 2 + - test/polkit/polkitidentitytest.c | 9 +- - test/polkit/polkitunixnetgrouptest.c | 3 + - .../test-polkitbackendjsauthority.c | 2 + - 9 files changed, 269 insertions(+), 8 deletions(-) - create mode 100644 0001-make-netgroup-support-optional.patch - -diff --git a/0001-make-netgroup-support-optional.patch b/0001-make-netgroup-support-optional.patch -new file mode 100644 -index 0000000..dedc5f7 ---- /dev/null -+++ b/0001-make-netgroup-support-optional.patch -@@ -0,0 +1,226 @@ -+From 73eada88dd344333cc1d1f9c5c35413fcee1dd67 Mon Sep 17 00:00:00 2001 -+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> -+Date: Wed, 11 Jul 2018 04:54:26 -0500 -+Subject: [PATCH] make netgroup support optional -+ -+On at least Linux/musl and Linux/uclibc, netgroup support is not -+available. PolKit fails to compile on these systems for that reason. -+ -+This change makes netgroup support conditional on the presence of the -+setnetgrent(3) function which is required for the support to work. If -+that function is not available on the system, an error will be returned -+to the administrator if unix-netgroup: is specified in configuration. -+ -+Fixes bug 50145. -+--- -+ configure.ac | 2 +- -+ src/polkit/polkitidentity.c | 16 ++++++++++++++++ -+ src/polkit/polkitunixnetgroup.c | 3 +++ -+ .../polkitbackendinteractiveauthority.c | 14 ++++++++------ -+ src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++ -+ test/polkit/polkitidentitytest.c | 9 ++++++++- -+ test/polkit/polkitunixnetgrouptest.c | 3 +++ -+ 7 files changed, 41 insertions(+), 8 deletions(-) -+ -+diff --git a/configure.ac b/configure.ac -+index bfa87dd..cb86ac7 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 setnetgrent) -+ -+ if test "x$GCC" = "xyes"; then -+ LDFLAGS="-Wl,--as-needed $LDFLAGS" -+diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c -+index 3aa1f7f..10e9c17 100644 -+--- a/src/polkit/polkitidentity.c -++++ b/src/polkit/polkitidentity.c -+@@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str, -+ } -+ else if (g_str_has_prefix (str, "unix-netgroup:")) -+ { -++#ifndef HAVE_SETNETGRENT -++ g_set_error (error, -++ POLKIT_ERROR, -++ POLKIT_ERROR_FAILED, -++ "Netgroups are not available on this machine ('%s')", -++ str); -++#else -+ identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1); -++#endif -+ } -+ -+ if (identity == NULL && (error != NULL && *error == NULL)) -+@@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVariant *variant, -+ GVariant *v; -+ const char *name; -+ -++#ifndef HAVE_SETNETGRENT -++ g_set_error (error, -++ POLKIT_ERROR, -++ POLKIT_ERROR_FAILED, -++ "Netgroups are not available on this machine"); -++ goto out; -++#else -+ v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error); -+ if (v == NULL) -+ { -+@@ -353,6 +368,7 @@ polkit_identity_new_for_gvariant (GVariant *variant, -+ name = g_variant_get_string (v, NULL); -+ ret = polkit_unix_netgroup_new (name); -+ g_variant_unref (v); -++#endif -+ } -+ else -+ { -+diff --git a/src/polkit/polkitunixnetgroup.c b/src/polkit/polkitunixnetgroup.c -+index 8a2b369..83f8d4a 100644 -+--- a/src/polkit/polkitunixnetgroup.c -++++ b/src/polkit/polkitunixnetgroup.c -+@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group, -+ PolkitIdentity * -+ polkit_unix_netgroup_new (const gchar *name) -+ { -++#ifndef HAVE_SETNETGRENT -++ g_assert_not_reached(); -++#endif -+ g_return_val_if_fail (name != NULL, NULL); -+ return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP, -+ "name", name, -+diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c -+index cb6fdab..ab47a98 100644 -+--- a/src/polkitbackend/polkitbackendinteractiveauthority.c -++++ b/src/polkitbackend/polkitbackendinteractiveauthority.c -+@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group, -+ GList *ret; -+ -+ ret = NULL; -++#ifdef HAVE_SETNETGRENT -+ name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group)); -+ -+-#ifdef HAVE_SETNETGRENT_RETURN -++# ifdef HAVE_SETNETGRENT_RETURN -+ if (setnetgrent (name) == 0) -+ { -+ g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno)); -+ goto out; -+ } -+-#else -++# else -+ setnetgrent (name); -+-#endif -++# endif /* HAVE_SETNETGRENT_RETURN */ -+ -+ for (;;) -+ { -+-#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) -++# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) -+ const char *hostname, *username, *domainname; -+-#else -++# else -+ char *hostname, *username, *domainname; -+-#endif -++# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */ -+ PolkitIdentity *user; -+ GError *error = NULL; -+ -+@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity *group, -+ -+ out: -+ endnetgrent (); -++#endif /* HAVE_SETNETGRENT */ -+ return ret; -+ } -+ -+diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp -+index 517f3c6..45b0378 100644 -+--- a/src/polkitbackend/polkitbackendjsauthority.cpp -++++ b/src/polkitbackend/polkitbackendjsauthority.cpp -+@@ -1499,6 +1499,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, -+ -+ JS::CallArgs args = JS::CallArgsFromVp (argc, vp); -+ -++#ifdef HAVE_SETNETGRENT -+ user = JS_EncodeString (cx, args[0].toString()); -+ netgroup = JS_EncodeString (cx, args[1].toString()); -+ -+@@ -1512,6 +1513,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, -+ -+ JS_free (cx, netgroup); -+ JS_free (cx, user); -++#endif -+ -+ ret = true; -+ -+diff --git a/test/polkit/polkitidentitytest.c b/test/polkit/polkitidentitytest.c -+index e91967b..e829aaa 100644 -+--- a/test/polkit/polkitidentitytest.c -++++ b/test/polkit/polkitidentitytest.c -+@@ -19,6 +19,7 @@ -+ * Author: Nikki VonHollen <vonhollen@google.com> -+ */ -+ -++#include "config.h" -+ #include "glib.h" -+ #include <polkit/polkit.h> -+ #include <polkit/polkitprivate.h> -+@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_test_data [] = { -+ {"unix-group:root", "unix-group:jane", FALSE}, -+ {"unix-group:jane", "unix-group:jane", TRUE}, -+ -++#ifdef HAVE_SETNETGRENT -+ {"unix-netgroup:foo", "unix-netgroup:foo", TRUE}, -+ {"unix-netgroup:foo", "unix-netgroup:bar", FALSE}, -++#endif -+ -+ {"unix-user:root", "unix-group:root", FALSE}, -++#ifdef HAVE_SETNETGRENT -+ {"unix-user:jane", "unix-netgroup:foo", FALSE}, -++#endif -+ -+ {NULL}, -+ }; -+@@ -181,11 +186,13 @@ main (int argc, char *argv[]) -+ g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string); -+ g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string); -+ -++#ifdef HAVE_SETNETGRENT -+ g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string); -++ g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); -++#endif -+ -+ g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant); -+ g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant); -+- g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); -+ -+ add_comparison_tests (); -+ -+diff --git a/test/polkit/polkitunixnetgrouptest.c b/test/polkit/polkitunixnetgrouptest.c -+index 3701ba1..e3352eb 100644 -+--- a/test/polkit/polkitunixnetgrouptest.c -++++ b/test/polkit/polkitunixnetgrouptest.c -+@@ -19,6 +19,7 @@ -+ * Author: Nikki VonHollen <vonhollen@google.com> -+ */ -+ -++#include "config.h" -+ #include "glib.h" -+ #include <polkit/polkit.h> -+ #include <string.h> -+@@ -69,7 +70,9 @@ int -+ main (int argc, char *argv[]) -+ { -+ g_test_init (&argc, &argv, NULL); -++#ifdef HAVE_SETNETGRENT -+ g_test_add_func ("/PolkitUnixNetgroup/new", test_new); -+ g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name); -++#endif -+ return g_test_run (); -+ } -+-- -+2.17.1 -+ -diff --git a/configure.ac b/configure.ac -index bfa87dd..cb86ac7 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 setnetgrent) - - if test "x$GCC" = "xyes"; then - LDFLAGS="-Wl,--as-needed $LDFLAGS" -diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c -index 3aa1f7f..10e9c17 100644 ---- a/src/polkit/polkitidentity.c -+++ b/src/polkit/polkitidentity.c -@@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str, - } - else if (g_str_has_prefix (str, "unix-netgroup:")) - { -+#ifndef HAVE_SETNETGRENT -+ g_set_error (error, -+ POLKIT_ERROR, -+ POLKIT_ERROR_FAILED, -+ "Netgroups are not available on this machine ('%s')", -+ str); -+#else - identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1); -+#endif - } - - if (identity == NULL && (error != NULL && *error == NULL)) -@@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVariant *variant, - GVariant *v; - const char *name; - -+#ifndef HAVE_SETNETGRENT -+ g_set_error (error, -+ POLKIT_ERROR, -+ POLKIT_ERROR_FAILED, -+ "Netgroups are not available on this machine"); -+ goto out; -+#else - v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error); - if (v == NULL) - { -@@ -353,6 +368,7 @@ polkit_identity_new_for_gvariant (GVariant *variant, - name = g_variant_get_string (v, NULL); - ret = polkit_unix_netgroup_new (name); - g_variant_unref (v); -+#endif - } - else - { -diff --git a/src/polkit/polkitunixnetgroup.c b/src/polkit/polkitunixnetgroup.c -index 8a2b369..83f8d4a 100644 ---- a/src/polkit/polkitunixnetgroup.c -+++ b/src/polkit/polkitunixnetgroup.c -@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group, - PolkitIdentity * - polkit_unix_netgroup_new (const gchar *name) - { -+#ifndef HAVE_SETNETGRENT -+ g_assert_not_reached(); -+#endif - g_return_val_if_fail (name != NULL, NULL); - return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP, - "name", name, -diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c -index cb6fdab..ab47a98 100644 ---- a/src/polkitbackend/polkitbackendinteractiveauthority.c -+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c -@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group, - GList *ret; - - ret = NULL; -+#ifdef HAVE_SETNETGRENT - name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group)); - --#ifdef HAVE_SETNETGRENT_RETURN -+# ifdef HAVE_SETNETGRENT_RETURN - if (setnetgrent (name) == 0) - { - g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno)); - goto out; - } --#else -+# else - setnetgrent (name); --#endif -+# endif /* HAVE_SETNETGRENT_RETURN */ - - for (;;) - { --#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) -+# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) - const char *hostname, *username, *domainname; --#else -+# else - char *hostname, *username, *domainname; --#endif -+# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */ - PolkitIdentity *user; - GError *error = NULL; - -@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity *group, - - out: - endnetgrent (); -+#endif /* HAVE_SETNETGRENT */ - return ret; - } - -diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp -index 517f3c6..45b0378 100644 ---- a/src/polkitbackend/polkitbackendjsauthority.cpp -+++ b/src/polkitbackend/polkitbackendjsauthority.cpp -@@ -1499,6 +1499,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, - - JS::CallArgs args = JS::CallArgsFromVp (argc, vp); - -+#ifdef HAVE_SETNETGRENT - user = JS_EncodeString (cx, args[0].toString()); - netgroup = JS_EncodeString (cx, args[1].toString()); - -@@ -1512,6 +1513,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, - - JS_free (cx, netgroup); - JS_free (cx, user); -+#endif - - ret = true; - -diff --git a/test/polkit/polkitidentitytest.c b/test/polkit/polkitidentitytest.c -index e91967b..e829aaa 100644 ---- a/test/polkit/polkitidentitytest.c -+++ b/test/polkit/polkitidentitytest.c -@@ -19,6 +19,7 @@ - * Author: Nikki VonHollen <vonhollen@google.com> - */ - -+#include "config.h" - #include "glib.h" - #include <polkit/polkit.h> - #include <polkit/polkitprivate.h> -@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_test_data [] = { - {"unix-group:root", "unix-group:jane", FALSE}, - {"unix-group:jane", "unix-group:jane", TRUE}, - -+#ifdef HAVE_SETNETGRENT - {"unix-netgroup:foo", "unix-netgroup:foo", TRUE}, - {"unix-netgroup:foo", "unix-netgroup:bar", FALSE}, -+#endif - - {"unix-user:root", "unix-group:root", FALSE}, -+#ifdef HAVE_SETNETGRENT - {"unix-user:jane", "unix-netgroup:foo", FALSE}, -+#endif - - {NULL}, - }; -@@ -181,11 +186,13 @@ main (int argc, char *argv[]) - g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string); - g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string); - -+#ifdef HAVE_SETNETGRENT - g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string); -+ g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); -+#endif - - g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant); - g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant); -- g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); - - add_comparison_tests (); - -diff --git a/test/polkit/polkitunixnetgrouptest.c b/test/polkit/polkitunixnetgrouptest.c -index 3701ba1..e3352eb 100644 ---- a/test/polkit/polkitunixnetgrouptest.c -+++ b/test/polkit/polkitunixnetgrouptest.c -@@ -19,6 +19,7 @@ - * Author: Nikki VonHollen <vonhollen@google.com> - */ - -+#include "config.h" - #include "glib.h" - #include <polkit/polkit.h> - #include <string.h> -@@ -69,7 +70,9 @@ int - main (int argc, char *argv[]) - { - g_test_init (&argc, &argv, NULL); -+#ifdef HAVE_SETNETGRENT - g_test_add_func ("/PolkitUnixNetgroup/new", test_new); - g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name); -+#endif - return g_test_run (); - } -diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c -index b484a26..01e4907 100644 ---- a/test/polkitbackend/test-polkitbackendjsauthority.c -+++ b/test/polkitbackend/test-polkitbackendjsauthority.c -@@ -137,12 +137,14 @@ test_get_admin_identities (void) - "unix-group:users" - } - }, -+#ifdef HAVE_SETNETGRENT - { - "net.company.action3", - { - "unix-netgroup:foo" - } - }, -+#endif - }; - guint n; - --- -2.17.1 - diff --git a/user/polkit/APKBUILD b/user/polkit/APKBUILD index 5b5dfdacd..683571a77 100644 --- a/user/polkit/APKBUILD +++ b/user/polkit/APKBUILD @@ -1,73 +1,47 @@ -# Contributor: Carlo Landmeter +# Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=polkit -pkgver=0.115 -pkgrel=3 +pkgver=123 +pkgrel=0 pkgdesc="Toolkit for controlling system-wide privileges" url="https://www.freedesktop.org/wiki/Software/polkit/" arch="all" options="!check suid" # Requires running ConsoleKit and PolKit for JS backend license="LGPL-2.0+" depends="" -makedepends="glib-dev gobject-introspection-dev gtk-doc intltool linux-pam-dev - mozjs-dev" -subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" +makedepends="glib-dev gobject-introspection-dev gtk-doc linux-pam-dev meson + duktape-dev elogind-dev" pkgusers="polkitd" pkggroups="polkitd" install="$pkgname.pre-install $pkgname.pre-upgrade" -source="https://www.freedesktop.org/software/polkit/releases/polkit-$pkgver.tar.gz - 0001-make-netgroup-support-optional.patch - CVE-2018-19788.patch +subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" +source="https://gitlab.freedesktop.org/polkit/polkit/-/archive/$pkgver/polkit-$pkgver.tar.bz2 fix-consolekit-db-stat.patch fix-test-fgetpwent.patch " # secfixes: +# 0.123-r0: +# - CVE-2021-4034 # 0.115-r2: # - CVE-2018-19788 -prepare() { - cd "$builddir" - default_prepare - autoreconf -vif -} - build() { - cd "$builddir" - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --libexecdir=/usr/lib/polkit-1 \ - --localstatedir=/var \ - --disable-static \ - --enable-nls \ - --enable-introspection \ - --enable-man-pages \ - --with-pam-include=base-auth \ - --disable-gtk-doc-html \ - --disable-gtk-doc-pdf \ - --disable-libsystemd-login \ - --disable-libelogind - - make + meson setup . build \ + -Dsession_tracking=libelogind \ + -Dman=true \ + -Dpam_include='base-auth' + meson compile -C build } check() { - cd "$builddir" - make check + meson test -C build } package() { - cd "$builddir" - make DESTDIR="$pkgdir" install + meson install -C build --destdir="$pkgdir" } -sha512sums="1153011fa93145b2c184e6b3446d3ca21b38918641aeccd8fac3985ac3e30ec6bc75be6973985fde90f2a24236592f1595be259155061c2d33358dd17c4ee4fc polkit-0.115.tar.gz -6d68d90e6dc9594175631c99699d4d949fba6d2d1ad66680897f9a17e9dc3c17b44f2bc06ed4f6149931e17a96baaf481981fb0698aace7c81a67c06c2806c29 0001-make-netgroup-support-optional.patch -4a2a11c1de8ef11def9c32b4b595fd45066aeaeb0cb42665846e3c7b8c6f5b7d3a782d722a25889afdb6a4414abed0837a359692342baaeb770d0e9712818ce1 CVE-2018-19788.patch -95493ef842b46ce9e724933a5d86083589075fb452435057b8f629643cac7c7eff67a24fd188087987e98057f0130757fad546d0c090767da3d71ebaf8485a24 fix-consolekit-db-stat.patch +sha512sums="4306363d3ed7311243de462832199bd10ddda35e36449104daff0895725d8189b07a4c88340f28607846fdf761c23470da2d43288199c46aa816426384124bb6 polkit-123.tar.bz2 +bfefe2398f97138391ed34630e2994670dddaa0b13585e2e7cb101e7d11e3054dd491244ec84116b908d0f126a69032c467d83a0c52b0bb980d9b10290600745 fix-consolekit-db-stat.patch 966825aded565432f4fda9e54113a773b514ebf7ee7faa83bcb8b97d218ae84a8707d6747bbc3cb8a828638d692fdef34c05038f150ad38e02a29f2c782aba5b fix-test-fgetpwent.patch" diff --git a/user/polkit/CVE-2018-19788.patch b/user/polkit/CVE-2018-19788.patch deleted file mode 100644 index 6a2845aca..000000000 --- a/user/polkit/CVE-2018-19788.patch +++ /dev/null @@ -1,183 +0,0 @@ -From 35af308b530f36c1a0a912387106a59b3ab92027 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> -Date: Mon, 3 Dec 2018 10:28:58 +0100 -Subject: [PATCH 1/2] Use default of -1 for uid/gid in class initialization - -This doesn't seem to change anything in polkitd behaviour, but it -seems cleaner to default to -1 which here means "unset". ---- - src/polkit/polkitunixgroup.c | 4 ++-- - src/polkit/polkitunixuser.c | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/polkit/polkitunixgroup.c b/src/polkit/polkitunixgroup.c -index c57a1aa..095cca0 100644 ---- a/src/polkit/polkitunixgroup.c -+++ b/src/polkit/polkitunixgroup.c -@@ -131,9 +131,9 @@ polkit_unix_group_class_init (PolkitUnixGroupClass *klass) - g_param_spec_int ("gid", - "Group ID", - "The UNIX group ID", -- 0, -+ -1, - G_MAXINT, -- 0, -+ -1, - G_PARAM_CONSTRUCT | - G_PARAM_READWRITE | - G_PARAM_STATIC_NAME | -diff --git a/src/polkit/polkitunixuser.c b/src/polkit/polkitunixuser.c -index 8bfd3a1..a5285f4 100644 ---- a/src/polkit/polkitunixuser.c -+++ b/src/polkit/polkitunixuser.c -@@ -144,9 +144,9 @@ polkit_unix_user_class_init (PolkitUnixUserClass *klass) - g_param_spec_int ("uid", - "User ID", - "The UNIX user ID", -- 0, -+ -1, - G_MAXINT, -- 0, -+ -1, - G_PARAM_CONSTRUCT | - G_PARAM_READWRITE | - G_PARAM_STATIC_NAME | --- -2.18.1 - - -From fbaab32cb4ed9ed5f1e3eea6cd317d443aa427dc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> -Date: Mon, 3 Dec 2018 12:51:26 +0100 -Subject: [PATCH 2/2] Check gid and uid initalization in PolkitUnixUser and - Group objects - -When a user or group above INT32_MAX is created, the numeric uid or -gid wraps around to negative when the value is assigned to gint, and -polkit gets confused. Let's refuse such uids and gids. - -This patch just refuses to initialize uid and gid values to negative. -A nicer fix is to change the underlying type to e.g. gint64 to allow -the full range of values in uid_t and gid_t to be represented. But -this cannot be done without breaking the API, so likely new functions -will have to be added (a polkit_unix_user_new variant that takes a -gint64, and the same for _group_new, _set_uid, _get_uid, _set_gid, -_get_gid, etc.). This will require a bigger patch. - -Fixes https://gitlab.freedesktop.org/polkit/polkit/issues/74. - -Example sessions from uid=4000000000: - -Dec 03 14:35:08 krowka polkitd[21432]: system-bus-name::1.41869 is inquiring whether system-bus-name::1.79432 is authorized for org.freedesktop.systemd1.manage-units -Dec 03 14:35:08 krowka polkitd[21432]: user of caller is unix-user:root -Dec 03 14:35:08 krowka polkitd[21432]: polkit_unix_user_new: assertion 'uid >= 0' failed -Dec 03 14:35:08 krowka polkitd[21432]: polkit_identity_to_string: assertion 'POLKIT_IS_IDENTITY (identity)' failed -Dec 03 14:35:08 krowka polkitd[21432]: user of subject is (null) -Dec 03 14:35:08 krowka polkitd[21432]: polkit_identity_equal: assertion 'POLKIT_IS_IDENTITY (b)' failed -Dec 03 14:35:08 krowka polkitd[21432]: checking whether system-bus-name::1.79432 is authorized for org.freedesktop.systemd1.manage-units -Dec 03 14:35:08 krowka polkitd[21432]: polkit_unix_user_new: assertion 'uid >= 0' failed -Dec 03 14:35:08 krowka polkitd[21432]: -Dec 03 14:35:08 krowka polkitd[21432]: polkit_authorization_result_get_is_challenge: assertion 'POLKIT_IS_AUTHORIZATION_RESULT (result)' failed -Dec 03 14:35:08 krowka polkitd[21432]: g_object_ref: assertion 'G_IS_OBJECT (object)' failed -Dec 03 14:35:08 krowka polkitd[21432]: g_object_ref: assertion 'G_IS_OBJECT (object)' failed -Dec 03 14:35:08 krowka polkitd[21432]: polkit_authorization_result_get_details: assertion 'POLKIT_IS_AUTHORIZATION_RESULT (result)' failed -Dec 03 14:35:08 krowka polkitd[21432]: polkit_authorization_result_get_is_challenge: assertion 'POLKIT_IS_AUTHORIZATION_RESULT (result)' failed -Dec 03 14:35:08 krowka polkitd[21432]: polkit_authorization_result_get_is_authorized: assertion 'POLKIT_IS_AUTHORIZATION_RESULT (result)' failed -Dec 03 14:35:08 krowka polkitd[21432]: g_object_unref: assertion 'G_IS_OBJECT (object)' failed -Dec 03 14:35:08 krowka polkitd[21432]: g_object_unref: assertion 'G_IS_OBJECT (object)' failed ---- - src/polkit/polkitunixgroup.c | 9 ++++++++- - src/polkit/polkitunixuser.c | 7 +++++++ - 2 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/src/polkit/polkitunixgroup.c b/src/polkit/polkitunixgroup.c -index 095cca0..53db862 100644 ---- a/src/polkit/polkitunixgroup.c -+++ b/src/polkit/polkitunixgroup.c -@@ -71,6 +71,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixGroup, polkit_unix_group, G_TYPE_OBJECT, - static void - polkit_unix_group_init (PolkitUnixGroup *unix_group) - { -+ unix_group->gid = -1; - } - - static void -@@ -100,11 +101,14 @@ polkit_unix_group_set_property (GObject *object, - GParamSpec *pspec) - { - PolkitUnixGroup *unix_group = POLKIT_UNIX_GROUP (object); -+ gint val; - - switch (prop_id) - { - case PROP_GID: -- unix_group->gid = g_value_get_int (value); -+ val = g_value_get_int (value); -+ g_return_if_fail (val >= 0); -+ unix_group->gid = val; - break; - - default: -@@ -169,6 +173,7 @@ polkit_unix_group_set_gid (PolkitUnixGroup *group, - gint gid) - { - g_return_if_fail (POLKIT_IS_UNIX_GROUP (group)); -+ g_return_if_fail (gid >= 0); - group->gid = gid; - } - -@@ -183,6 +188,8 @@ polkit_unix_group_set_gid (PolkitUnixGroup *group, - PolkitIdentity * - polkit_unix_group_new (gint gid) - { -+ g_return_val_if_fail (gid >= 0, NULL); -+ - return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_GROUP, - "gid", gid, - NULL)); -diff --git a/src/polkit/polkitunixuser.c b/src/polkit/polkitunixuser.c -index a5285f4..ef6403e 100644 ---- a/src/polkit/polkitunixuser.c -+++ b/src/polkit/polkitunixuser.c -@@ -72,6 +72,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixUser, polkit_unix_user, G_TYPE_OBJECT, - static void - polkit_unix_user_init (PolkitUnixUser *unix_user) - { -+ unix_user->uid = -1; - unix_user->name = NULL; - } - -@@ -112,10 +113,13 @@ polkit_unix_user_set_property (GObject *object, - GParamSpec *pspec) - { - PolkitUnixUser *unix_user = POLKIT_UNIX_USER (object); -+ gint val; - - switch (prop_id) - { - case PROP_UID: -+ val = g_value_get_int (value); -+ g_return_if_fail (val >= 0); - unix_user->uid = g_value_get_int (value); - break; - -@@ -182,6 +186,7 @@ polkit_unix_user_set_uid (PolkitUnixUser *user, - gint uid) - { - g_return_if_fail (POLKIT_IS_UNIX_USER (user)); -+ g_return_if_fail (uid >= 0); - user->uid = uid; - } - -@@ -196,6 +201,8 @@ polkit_unix_user_set_uid (PolkitUnixUser *user, - PolkitIdentity * - polkit_unix_user_new (gint uid) - { -+ g_return_val_if_fail (uid >= 0, NULL); -+ - return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_USER, - "uid", uid, - NULL)); --- -2.18.1 - diff --git a/user/polkit/fix-consolekit-db-stat.patch b/user/polkit/fix-consolekit-db-stat.patch index 3deceb639..d06ce7ae7 100644 --- a/user/polkit/fix-consolekit-db-stat.patch +++ b/user/polkit/fix-consolekit-db-stat.patch @@ -1,6 +1,6 @@ --- polkit-0.105.orig/src/polkitbackend/polkitbackendsessionmonitor.c 2012-04-24 19:05:34.000000000 +0300 +++ polkit-0.105/src/polkitbackend/polkitbackendsessionmonitor.c 2015-08-17 14:50:51.428580856 +0300 -@@ -47,7 +47,7 @@ struct _PolkitBackendSessionMonitor +@@ -48,7 +48,7 @@ struct _PolkitBackendSessionMonitor GKeyFile *database; GFileMonitor *database_monitor; @@ -9,7 +9,7 @@ }; struct _PolkitBackendSessionMonitorClass -@@ -95,7 +95,7 @@ reload_database (PolkitBackendSessionMon +@@ -96,7 +96,7 @@ reload_database (PolkitBackendSessionMon goto out; } @@ -18,7 +18,7 @@ monitor->database = g_key_file_new (); if (!g_key_file_load_from_file (monitor->database, -@@ -131,7 +131,8 @@ ensure_database (PolkitBackendSessionMon +@@ -132,7 +132,8 @@ ensure_database (PolkitBackendSessionMon strerror (errno)); goto out; } diff --git a/user/polkit/fix-parallel-make.patch b/user/polkit/fix-parallel-make.patch deleted file mode 100644 index b693a34dd..000000000 --- a/user/polkit/fix-parallel-make.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7bd30764a5230684c7c979a08a83dfa6e327f719 Mon Sep 17 00:00:00 2001 -From: Ryan Lortie <desrt@velocity.(none)> -Date: Tue, 13 Nov 2012 16:50:14 +0000 -Subject: build: Fix .gir generation for parallel make - -As per the intructions in the introspection Makefile, we should have a -line declaring a dependency between the .gir and .la files. - -https://bugs.freedesktop.org/show_bug.cgi?id=57077 - -Signed-off-by: David Zeuthen <zeuthen@gmail.com> ---- -diff --git a/src/polkit/Makefile.am b/src/polkit/Makefile.am -index 39d6d84..d648d29 100644 ---- a/src/polkit/Makefile.am -+++ b/src/polkit/Makefile.am -@@ -106,6 +106,8 @@ if HAVE_INTROSPECTION - - INTROSPECTION_GIRS = Polkit-1.0.gir - -+Polkit-1.0.gir: libpolkit-gobject-1.la -+ - girdir = $(INTROSPECTION_GIRDIR) - gir_DATA = Polkit-1.0.gir - -diff --git a/src/polkitagent/Makefile.am b/src/polkitagent/Makefile.am -index 1cfb73c..5b7d4c7 100644 ---- a/src/polkitagent/Makefile.am -+++ b/src/polkitagent/Makefile.am -@@ -108,6 +108,8 @@ if HAVE_INTROSPECTION - girdir = $(INTROSPECTION_GIRDIR) - gir_DATA = PolkitAgent-1.0.gir - -+PolkitAgent-1.0.gir: libpolkit-agent-1.la -+ - typelibsdir = $(INTROSPECTION_TYPELIBDIR) - typelibs_DATA = PolkitAgent-1.0.typelib - --- -cgit v0.9.0.2-2-gbebe |