1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-20 00:21:35 +00:00

* Fix a problem where waitpid() may return EINTR which causes the various

polkit helpers to report a failure.  This fix allows dynamic polkit
  policies to actually work (e.g. mounting fixed drives with proper
  authorization).

* Workaround a bug in our version of getline(3), and check for EOF when
  getline does not return -1.
This commit is contained in:
Joe Marcus Clarke 2009-03-30 00:17:17 +00:00
parent c469ef0c6b
commit ada2201110
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=231281
3 changed files with 25 additions and 1 deletions

View File

@ -8,7 +8,7 @@
PORTNAME= policykit
PORTVERSION= 0.9
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= sysutils gnome
MASTER_SITES= http://hal.freedesktop.org/releases/
DISTNAME= PolicyKit-${PORTVERSION}

View File

@ -0,0 +1,13 @@
--- src/kit/kit-spawn.c.orig 2009-03-29 20:11:24.000000000 -0400
+++ src/kit/kit-spawn.c 2009-03-29 20:11:43.000000000 -0400
@@ -396,7 +396,10 @@ kit_spawn_sync (const char *working_
}
}
+again:
if (waitpid (pid, out_exit_status, 0) == -1) {
+ if (errno == EINTR)
+ goto again;
goto out;
}
pid = -1;

View File

@ -0,0 +1,11 @@
--- src/polkit-grant/polkit-grant.c.orig 2009-03-29 20:12:16.000000000 -0400
+++ src/polkit-grant/polkit-grant.c 2009-03-29 20:13:15.000000000 -0400
@@ -303,7 +303,7 @@ polkit_grant_io_func (PolKitGrant *polki
g_return_if_fail (polkit_grant != NULL);
g_return_if_fail (polkit_grant->helper_is_running);
- while (kit_getline (&line, &line_len, polkit_grant->child_stdout_f) != -1) {
+ while (kit_getline (&line, &line_len, polkit_grant->child_stdout_f) != -1 && !feof (polkit_grant->child_stdout_f)) {
if (strlen (line) > 0 &&
line[strlen (line) - 1] == '\n')
line[strlen (line) - 1] = '\0';