patches/PolicyKit-01-solaris.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 1569 ada91a9985fd
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
874
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     1
diff -ru PolicyKit-0.7.orig/config.h.in PolicyKit-0.7/config.h.in
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     2
--- PolicyKit-0.7.orig/config.h.in	Sat Dec  1 09:43:35 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     3
+++ PolicyKit-0.7/config.h.in	Fri Jan 25 14:44:43 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     4
@@ -54,6 +54,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     5
 /* SELinux support */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     6
 #undef HAVE_SELINUX
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     7
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     8
+/* Is this a Solaris system? */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
     9
+#undef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    10
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    11
 /* Define to 1 if you have the <stdint.h> header file. */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    12
 #undef HAVE_STDINT_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    13
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    14
diff -ru PolicyKit-0.7.orig/configure.in PolicyKit-0.7/configure.in
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    15
--- PolicyKit-0.7.orig/configure.in	Mon Nov 26 04:43:40 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    16
+++ PolicyKit-0.7/configure.in	Fri Jan 25 14:43:04 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    17
@@ -370,7 +370,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    18
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    19
 AC_SUBST(PAM_MODULE_DIR)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    20
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    21
-AC_ARG_WITH(os-type,     [  --with-os-type=<os>        distribution or OS (redhat/suse/gentoo/pardus)])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    22
+AC_ARG_WITH(os-type,     [  --with-os-type=<os>        distribution or OS (redhat/suse/gentoo/pardus/solaris)])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    23
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    24
 #### Check our operating system (distro-tweaks required)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    25
 if test "z$with_os_type" = "z"; then
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    26
@@ -395,6 +395,8 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    27
         with_os_type=gentoo
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    28
     elif test x$operating_system = xpardus ; then
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    29
         with_os_type=pardus
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    30
+    elif test x$operating_system = xsolaris ; then
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    31
+	with_os_type=solaris
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    32
     else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    33
         with_os_type=unknown
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    34
     fi
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    35
@@ -406,6 +408,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    36
 AM_CONDITIONAL(OS_TYPE_SUSE, test x$with_os_type = xsuse, [Running on SUSE OS'es])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    37
 AM_CONDITIONAL(OS_TYPE_GENTOO, test x$with_os_type = xgentoo, [Running on Gentoo OS'es])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    38
 AM_CONDITIONAL(OS_TYPE_PARDUS, test x$with_os_type = xpardus, [Running on Pardus OS'es])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    39
+AM_CONDITIONAL(OS_TYPE_SALARIS, test x$with_os_type = xsolaris, [Running os Solaris OS'es])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    40
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    41
 AC_ARG_WITH(pam-include, [  --with-pam-include=<file>  pam file to include])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    42
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    43
@@ -420,7 +423,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    44
    PAM_FILE_INCLUDE_ACCOUNT=system-auth
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    45
    PAM_FILE_INCLUDE_PASSWORD=system-auth
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    46
    PAM_FILE_INCLUDE_SESSION=system-auth
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    47
-elif test x$with_os_type = xsuse ; then
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    48
+elif test x$with_os_type = xsuse -o x$with_os_type - xsolaris ; then
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    49
    PAM_FILE_INCLUDE_AUTH=common-auth
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    50
    PAM_FILE_INCLUDE_ACCOUNT=common-account
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    51
    PAM_FILE_INCLUDE_PASSWORD=common-password
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    52
@@ -441,6 +444,17 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    53
 AC_DEFINE_UNQUOTED(PAM_FILE_INCLUDE_PASSWORD, "$PAM_FILE_INCLUDE_PASSWORD", [pam file password])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    54
 AC_DEFINE_UNQUOTED(PAM_FILE_INCLUDE_SESSION, "$PAM_FILE_INCLUDE_SESSION", [pam file session])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    55
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    56
+dnl ---------------------------------------------------------------------------
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    57
+dnl - check OS 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    58
+dnl ---------------------------------------------------------------------------
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    59
+case "$host_os" in
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    60
+  *linux*)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    61
+	;;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    62
+  *solaris*)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    63
+	AC_DEFINE([HAVE_SOLARIS], 1, [Is this a Solaris system?])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    64
+	;;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    65
+esac
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    66
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    67
 # ********************
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    68
 # Internationalisation
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    69
 # ********************
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    70
diff -ru PolicyKit-0.7.orig/src/kit/kit-file.h PolicyKit-0.7/src/kit/kit-file.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    71
--- PolicyKit-0.7.orig/src/kit/kit-file.h	Thu Nov 29 05:32:39 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    72
+++ PolicyKit-0.7/src/kit/kit-file.h	Fri Jan 25 15:15:28 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    73
@@ -35,6 +35,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    74
 #define KIT_FILE_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    75
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    76
 #include <kit/kit.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    77
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    78
+#include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    79
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    80
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    81
 KIT_BEGIN_DECLS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    82
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    83
diff -ru PolicyKit-0.7.orig/src/kit/kit-spawn.c PolicyKit-0.7/src/kit/kit-spawn.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    84
--- PolicyKit-0.7.orig/src/kit/kit-spawn.c	Thu Nov 29 05:32:22 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    85
+++ PolicyKit-0.7/src/kit/kit-spawn.c	Fri Jan 25 15:35:28 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    86
@@ -156,9 +156,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    87
  * @flags: A combination of flags from #KitSpawnFlags
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    88
  * @argv: #NULL terminated argument vector
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    89
  * @envp: #NULL terminated environment or #NULL to inherit parents;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    90
- * @stdin: String to write to stdin of child or #NULL
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    91
- * @stdout: Return location for stdout from child or #NULL. Free with kit_free().
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    92
- * @stderr: Return location for stderr from child or #NULL. Free with kit_free().
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    93
+ * @stdinp: String to write to stdin of child or #NULL
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    94
+ * @stdoutp: Return location for stdout from child or #NULL. Free with kit_free().
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    95
+ * @stderrp: Return location for stderr from child or #NULL. Free with kit_free().
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    96
  * @out_exit_status: Return location for exit status
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    97
  *
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    98
  * Executes a child process and waits for the child process to exit
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    99
@@ -175,9 +175,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   100
                 KitSpawnFlags   flags,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   101
                 char          **argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   102
                 char          **envp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   103
-                char           *stdin,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   104
-                char          **stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   105
-                char          **stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   106
+                char           *stdinp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   107
+                char          **stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   108
+                char          **stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   109
                 int            *out_exit_status)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   110
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   111
         kit_bool_t ret;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   112
@@ -191,28 +191,28 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   113
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   114
         kit_return_val_if_fail (argv != NULL, FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   115
         kit_return_val_if_fail (out_exit_status != NULL, FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   116
-        kit_return_val_if_fail (! ((flags & KIT_SPAWN_CHILD_INHERITS_STDIN) && stdin != NULL), FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   117
-        kit_return_val_if_fail (! ((flags & KIT_SPAWN_STDOUT_TO_DEV_NULL) && stdout != NULL), FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   118
-        kit_return_val_if_fail (! ((flags & KIT_SPAWN_STDERR_TO_DEV_NULL) && stderr != NULL), FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   119
+        kit_return_val_if_fail (! ((flags & KIT_SPAWN_CHILD_INHERITS_STDIN) && stdinp != NULL), FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   120
+        kit_return_val_if_fail (! ((flags & KIT_SPAWN_STDOUT_TO_DEV_NULL) && stdoutp != NULL), FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   121
+        kit_return_val_if_fail (! ((flags & KIT_SPAWN_STDERR_TO_DEV_NULL) && stderrp != NULL), FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   122
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   123
-        if (stdout != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   124
-                *stdout = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   125
-        if (stderr != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   126
-                *stderr = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   127
+        if (stdoutp != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   128
+                *stdoutp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   129
+        if (stderrp != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   130
+                *stderrp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   131
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   132
-        if (stdin != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   133
+        if (stdinp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   134
                 if (pipe (stdin_pipe) != 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   135
                         goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   136
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   137
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   138
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   139
-        if (stdout != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   140
+        if (stdoutp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   141
                 if (pipe (stdout_pipe) != 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   142
                         goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   143
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   144
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   145
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   146
-        if (stderr != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   147
+        if (stderrp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   148
                 if (pipe (stderr_pipe) != 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   149
                         goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   150
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   151
@@ -260,9 +260,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   152
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   153
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   154
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   155
-                /* set stdin, stdout and stderr */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   156
+                /* set stdinp, stdoutp and stderrp */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   157
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   158
-                if (stdin != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   159
+                if (stdinp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   160
                         if (_sane_dup2 (stdin_pipe[0], 0) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   161
                                 exit (128 + errno);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   162
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   163
@@ -272,7 +272,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   164
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   165
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   166
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   167
-                if (stdout != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   168
+                if (stdoutp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   169
                         if (_sane_dup2 (stdout_pipe[1], 1) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   170
                                 exit (128 + errno);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   171
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   172
@@ -282,7 +282,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   173
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   174
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   175
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   176
-                if (stderr != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   177
+                if (stderrp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   178
                         if (_sane_dup2 (stderr_pipe[1], 2) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   179
                                 exit (128 + errno);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   180
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   181
@@ -322,7 +322,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   182
                         close (stderr_pipe[1]);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   183
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   184
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   185
-                wp = stdin;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   186
+                wp = stdinp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   187
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   188
                 while (stdin_pipe[1] != -1 || stdout_pipe[0] != -1 || stderr_pipe[0] != -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   189
                         int ret;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   190
@@ -375,7 +375,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   191
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   192
                         
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   193
                         if (stdout_pipe[0] != -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   194
-                                num_read = _read_from (stdout_pipe[0], stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   195
+                                num_read = _read_from (stdout_pipe[0], stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   196
                                 if (num_read == 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   197
                                         close (stdout_pipe[0]);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   198
                                         stdout_pipe[0] = -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   199
@@ -385,7 +385,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   200
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   201
                         
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   202
                         if (stderr_pipe[0] != -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   203
-                                num_read = _read_from (stderr_pipe[0], stderr);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   204
+                                num_read = _read_from (stderr_pipe[0], stderrp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   205
                                 if (num_read == 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   206
                                         close (stderr_pipe[0]);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   207
                                         stderr_pipe[0] = -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   208
@@ -424,13 +424,13 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   209
                 close (stderr_pipe[0]);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   210
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   211
         if (!ret) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   212
-                if (stdout != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   213
-                        kit_free (*stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   214
-                        *stdout = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   215
+                if (stdoutp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   216
+                        kit_free (*stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   217
+                        *stdoutp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   218
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   219
-                if (stderr != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   220
-                        kit_free (*stderr);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   221
-                        *stderr = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   222
+                if (stderrp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   223
+                        kit_free (*stderrp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   224
+                        *stderrp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   225
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   226
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   227
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   228
@@ -483,8 +483,8 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   229
                 "echo -n \"$value\""                       "\n"
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   230
                 "exit 0"                                   "\n";
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   231
         char *argv[] = {"/tmp/kit-spawn-test", NULL};
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   232
-        char *stdout;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   233
-        char *stderr;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   234
+        char *stdoutp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   235
+        char *stderrp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   236
         int exit_status;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   237
         struct stat statbuf;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   238
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   239
@@ -495,14 +495,14 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   240
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   241
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   242
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   243
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   244
-                                    &stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   245
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   246
+                                    &stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   247
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   248
                         kit_assert (WEXITSTATUS (exit_status) == 42);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   249
-                        kit_assert (stdout != NULL && strcmp (stdout, "Hello World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   250
-                        kit_assert (stderr != NULL && strcmp (stderr, "Goodbye World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   251
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   252
-                        kit_free (stderr);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   253
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "Hello World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   254
+                        kit_assert (stderrp != NULL && strcmp (stderrp, "Goodbye World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   255
+                        kit_free (stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   256
+                        kit_free (stderrp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   257
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   258
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   259
                 if (kit_spawn_sync ("/",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   260
@@ -526,12 +526,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   261
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   262
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   263
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   264
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   265
-                                    &stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   266
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   267
+                                    &stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   268
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   269
                         kit_assert (WEXITSTATUS (exit_status) == 43);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   270
-                        kit_assert (stdout == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   271
-                        kit_assert (stderr == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   272
+                        kit_assert (stdoutp == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   273
+                        kit_assert (stderrp == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   274
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   275
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   276
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   277
@@ -546,12 +546,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   278
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   279
                                     envp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   280
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   281
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   282
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   283
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   284
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   285
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   286
-                        kit_assert (stdout != NULL && strcmp (stdout, "some_value") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   287
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   288
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "some_value") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   289
+                        kit_free (stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   290
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   291
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   292
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   293
@@ -606,12 +606,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   294
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   295
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   296
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   297
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   298
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   299
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   300
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   301
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   302
-                        kit_assert (stdout != NULL && strcmp (stdout, "/tmp\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   303
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   304
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "/tmp\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   305
+                        kit_free (stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   306
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   307
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   308
                 kit_assert (stat ("/usr", &statbuf) == 0 && S_ISDIR (statbuf.st_mode));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   309
@@ -620,12 +620,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   310
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   311
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   312
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   313
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   314
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   315
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   316
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   317
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   318
-                        kit_assert (stdout != NULL && strcmp (stdout, "/usr\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   319
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   320
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "/usr\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   321
+                        kit_free (stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   322
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   323
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   324
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   325
@@ -650,12 +650,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   326
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   327
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   328
                                     "foobar0\nfoobar1",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   329
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   330
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   331
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   332
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   333
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   334
-                        kit_assert (stdout != NULL && strcmp (stdout, "foobar0 foobar1") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   335
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   336
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "foobar0 foobar1") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   337
+                        kit_free (stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   338
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   339
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   340
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   341
diff -ru PolicyKit-0.7.orig/src/kit/kit-spawn.h PolicyKit-0.7/src/kit/kit-spawn.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   342
--- PolicyKit-0.7.orig/src/kit/kit-spawn.h	Thu Nov 29 05:31:32 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   343
+++ PolicyKit-0.7/src/kit/kit-spawn.h	Fri Jan 25 15:00:55 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   344
@@ -57,9 +57,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   345
                            KitSpawnFlags   flags,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   346
                            char          **argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   347
                            char          **envp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   348
-                           char           *stdin,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   349
-                           char          **stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   350
-                           char          **stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   351
+                           char           *stdinp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   352
+                           char          **stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   353
+                           char          **stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   354
                            int            *out_exit_status);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   355
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   356
 KIT_END_DECLS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   357
diff -ru PolicyKit-0.7.orig/src/kit/kit-string.c PolicyKit-0.7/src/kit/kit-string.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   358
--- PolicyKit-0.7.orig/src/kit/kit-string.c	Thu Dec  6 10:25:37 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   359
+++ PolicyKit-0.7/src/kit/kit-string.c	Fri Jan 25 16:18:03 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   360
@@ -127,6 +127,26 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   361
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   362
 #endif /* KIT_BUILD_TESTS */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   363
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   364
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   365
+int vasprintf(char **strp, const char *fmt, va_list ap)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   366
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   367
+        int size;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   368
+        va_list ap2;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   369
+        char s;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   370
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   371
+        *strp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   372
+        va_copy(ap2, ap);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   373
+        size = vsnprintf(&s, 1, fmt, ap2);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   374
+        va_end(ap2);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   375
+        *strp = malloc(size + 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   376
+        if (!*strp)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   377
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   378
+        vsnprintf(*strp, size + 1, fmt, ap);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   379
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   380
+        return size;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   381
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   382
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   383
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   384
 /**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   385
  * kit_strdup_printf:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   386
  * @format: sprintf(3) format string
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   387
diff -ru PolicyKit-0.7.orig/src/kit/kit-test.c PolicyKit-0.7/src/kit/kit-test.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   388
--- PolicyKit-0.7.orig/src/kit/kit-test.c       Thu Nov 29 05:32:34 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   389
+++ PolicyKit-0.7.good/src/kit/kit-test.c       Fri Jan 25 18:30:16 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   390
@@ -27,8 +27,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   391
  *
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   392
  **************************************************************************/
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   393
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   394
+#ifdef HAVE_CONFIG_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   395
+#  include <config.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   396
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   397
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   398
 #include <stdio.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   399
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   400
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   401
+#include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   402
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   403
 #include <kit/kit-test.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   404
 #include <kit/kit-memory.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   405
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   406
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   407
diff -ru PolicyKit-0.7.orig/src/kit/kit.h PolicyKit-0.7/src/kit/kit.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   408
--- PolicyKit-0.7.orig/src/kit/kit.h	Thu Nov 29 12:59:43 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   409
+++ PolicyKit-0.7/src/kit/kit.h	Fri Jan 25 15:17:53 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   410
@@ -72,6 +72,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   411
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   412
 void kit_print_backtrace (void);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   413
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   414
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   415
+#define __PRETTY_FUNCTION__ __func__
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   416
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   417
 /**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   418
  * kit_assert:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   419
  * @expr: expression
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   420
@@ -136,6 +139,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   421
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   422
 #define _KIT_INSIDE_KIT_H 1
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   423
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   424
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   425
+#include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   426
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   427
 #include <kit/kit-memory.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   428
 #include <kit/kit-string.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   429
 #include <kit/kit-list.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   430
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-config.c PolicyKit-0.7/src/polkit/polkit-config.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   431
--- PolicyKit-0.7.orig/src/polkit/polkit-config.c	Thu Nov 29 11:21:19 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   432
+++ PolicyKit-0.7/src/polkit/polkit-config.c	Fri Jan 25 15:53:24 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   433
@@ -39,7 +39,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   434
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   435
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   436
 #include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   437
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   438
+#include <port.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   439
+#include <sys/stat.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   440
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   441
 #include <sys/inotify.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   442
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   443
 #include <regex.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   444
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   445
 #include <regex.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   446
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-context.c PolicyKit-0.7/src/polkit/polkit-context.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   447
--- PolicyKit-0.7.orig/src/polkit/polkit-context.c	Wed Dec  5 09:22:41 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   448
+++ PolicyKit-0.7/src/polkit/polkit-context.c	Fri Jan 25 15:48:51 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   449
@@ -39,7 +39,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   450
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   451
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   452
 #include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   453
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   454
+#include <port.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   455
+#include <sys/stat.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   456
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   457
 #include <sys/inotify.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   458
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   459
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   460
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   461
 #include "polkit-config.h"
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   462
@@ -153,7 +158,60 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   463
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   464
         /* NOTE: we don't load the configuration file until it's needed */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   465
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   466
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   467
         if (pk_context->io_add_watch_func != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   468
+                pk_context->inotify_fd = port_create ();
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   469
+                if (pk_context->inotify_fd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   470
+                        _pk_debug ("failed to port_create: %s", strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   471
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   472
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   473
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   474
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   475
+                /* Watch the /etc/PolicyKit/PolicyKit.conf file */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   476
+                pk_context->inotify_config_wd = port_add_watch (pk_context->inotify_fd,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   477
+                                                                   PACKAGE_SYSCONF_DIR "/PolicyKit/PolicyKit.conf",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   478
+                                                                   FILE_MODIFIED | FILE_ATTRIB);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   479
+                if (pk_context->inotify_config_wd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   480
+                        _pk_debug ("failed to add watch on file '" PACKAGE_SYSCONF_DIR "/PolicyKit/PolicyKit.conf': %s",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   481
+                                   strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   482
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   483
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   484
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   485
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   486
+                /* Watch the /usr/share/PolicyKit/policy directory */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   487
+                pk_context->inotify_policy_wd = port_add_watch (pk_context->inotify_fd,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   488
+                                                                   PACKAGE_DATA_DIR "/PolicyKit/policy",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   489
+                                                                   FILE_MODIFIED | FILE_ATTRIB);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   490
+                if (pk_context->inotify_policy_wd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   491
+                        _pk_debug ("failed to add watch on directory '" PACKAGE_DATA_DIR "/PolicyKit/policy': %s",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   492
+                                   strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   493
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   494
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   495
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   496
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   497
+#ifdef POLKIT_AUTHDB_DEFAULT
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   498
+                /* Watch the /var/lib/misc/PolicyKit.reload file */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   499
+                pk_context->inotify_grant_perm_wd = port_add_watch (pk_context->inotify_fd,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   500
+                                                                       PACKAGE_LOCALSTATE_DIR "/lib/misc/PolicyKit.reload",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   501
+                                                                       FILE_MODIFIED | FILE_ATTRIB);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   502
+                if (pk_context->inotify_grant_perm_wd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   503
+                        _pk_debug ("failed to add watch on file '" PACKAGE_LOCALSTATE_DIR "/lib/misc/PolicyKit.reload': %s",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   504
+                                   strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   505
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   506
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   507
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   508
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   509
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   510
+                pk_context->inotify_fd_watch_id = pk_context->io_add_watch_func (pk_context, pk_context->inotify_fd);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   511
+                if (pk_context->inotify_fd_watch_id == 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   512
+                        _pk_debug ("failed to add io watch");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   513
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   514
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   515
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   516
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   517
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   518
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   519
+        if (pk_context->io_add_watch_func != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   520
                 pk_context->inotify_fd = inotify_init ();
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   521
                 if (pk_context->inotify_fd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   522
                         _pk_debug ("failed to initialize inotify: %s", strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   523
@@ -203,6 +261,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   524
                         goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   525
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   526
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   527
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   528
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   529
         return TRUE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   530
 error:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   531
@@ -209,7 +268,72 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   532
         return FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   533
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   534
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   535
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   536
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   537
+struct fileportinfo {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   538
+        struct file_obj fobj;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   539
+        int events;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   540
+        int port;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   541
+};
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   542
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   543
 /**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   544
+ * port_add_watch:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   545
+ * @port: the port object
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   546
+ * @name: filename which will be added to the port
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   547
+ * @events: the event which will be watched for
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   548
+ *
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   549
+ * add file watch .
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   550
+ *
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   551
+ * Returns: the object
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   552
+ **/
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   553
+int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   554
+port_add_watch (int port, const char *name, uint32_t events)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   555
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   556
+        struct fileportinfo *fpi;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   557
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   558
+        if ( (fpi = kit_malloc (sizeof(struct fileportinfo)) ) == NULL ) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   559
+                _pk_debug ("Faile to kit_malloc!");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   560
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   561
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   562
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   563
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   564
+        fpi->fobj.fo_name = strdup (name);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   565
+        fpi->events = events;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   566
+        fpi->port = port;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   567
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   568
+        if ( file_associate (fpi, events) < 0 ) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   569
+                _pk_debug ("Failed to associate with file %s: %s", fpi->fobj.fo_name, strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   570
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   571
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   572
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   573
+        return 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   574
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   575
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   576
+int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   577
+file_associate (struct fileportinfo *fpinfo, int events)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   578
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   579
+        struct stat sb;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   580
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   581
+        if ( stat (fpinfo->fobj.fo_name, &sb) == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   582
+                _pk_debug ("Failed to stat file %s: %s", fpinfo->fobj.fo_name, strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   583
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   584
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   585
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   586
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   587
+        fpinfo->fobj.fo_atime = sb.st_atim;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   588
+        fpinfo->fobj.fo_mtime = sb.st_mtim;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   589
+        fpinfo->fobj.fo_ctime = sb.st_ctim;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   590
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   591
+        if ( port_associate (fpinfo->port, PORT_SOURCE_FILE, (uintptr_t)&(fpinfo->fobj), events, (void *)fpinfo ) == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   592
+                _pk_debug ("Failed to register file %s: %s", fpinfo->fobj.fo_name, strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   593
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   594
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   595
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   596
+        return 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   597
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   598
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   599
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   600
+/**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   601
  * polkit_context_ref:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   602
  * @pk_context: the context object
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   603
  * 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   604
@@ -296,7 +420,32 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   605
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   606
         config_changed = FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   607
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   608
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   609
         if (fd == pk_context->inotify_fd) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   610
+                port_event_t pe;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   611
+                struct file_obj *fobjp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   612
+                struct fileportinfo *fpip;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   613
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   614
+                while ( !port_get (fd, &pe, NULL) ) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   615
+                        switch (pe.portev_source) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   616
+                        case PORT_SOURCE_FILE:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   617
+                                fpip = (struct fileportinfo *)pe.portev_object;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   618
+                                fobjp = &fpip->fobj;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   619
+                                _pk_debug ("filename = %s, events = %d", fobjp->fo_name, pe.portev_events);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   620
+                                config_changed = TRUE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   621
+                                _pk_debug ("Config changed");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   622
+                                file_associate ((struct fileportinfo *)pe.portev_object, pe.portev_events);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   623
+                                break;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   624
+                        default:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   625
+                                _pk_debug ("Event from unexpected source");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   626
+                        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   627
+                        if ( config_changed )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   628
+                                break;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   629
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   630
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   631
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   632
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   633
+        if (fd == pk_context->inotify_fd) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   634
 /* size of the event structure, not counting name */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   635
 #define EVENT_SIZE  (sizeof (struct inotify_event))
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   636
 /* reasonable guess as to size of 1024 events */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   637
@@ -327,6 +476,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   638
                         i += EVENT_SIZE + event->len;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   639
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   640
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   641
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   642
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   643
         if (config_changed) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   644
                 polkit_context_force_reload (pk_context);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   645
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-policy-cache.c PolicyKit-0.7/src/polkit/polkit-policy-cache.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   646
--- PolicyKit-0.7.orig/src/polkit/polkit-policy-cache.c	Thu Nov 29 14:14:09 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   647
+++ PolicyKit-0.7/src/polkit/polkit-policy-cache.c	Fri Jan 25 15:50:48 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   648
@@ -127,8 +127,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   649
                 char *filename;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   650
                 static const char suffix[] = ".policy";
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   651
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   652
+#ifndef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   653
                 if (d->d_type != DT_REG)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   654
                         continue;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   655
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   656
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   657
                 filename = d->d_name;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   658
                 name_len = strlen (filename);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   659
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-policy-file.c PolicyKit-0.7/src/polkit/polkit-policy-file.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   660
--- PolicyKit-0.7.orig/src/polkit/polkit-policy-file.c	Thu Nov 29 11:30:38 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   661
+++ PolicyKit-0.7/src/polkit/polkit-policy-file.c	Fri Jan 25 16:21:09 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   662
@@ -804,7 +804,27 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   663
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   664
         return FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   665
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   666
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   667
+char *strndup ( const char *s, size_t n)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   668
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   669
+        size_t nAvail;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   670
+        char *p;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   671
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   672
+        if ( !s )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   673
+                return 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   674
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   675
+        if ( strlen(s) > n )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   676
+                nAvail = n + 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   677
+        else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   678
+                nAvail = strlen(s) + 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   679
+        p = malloc ( nAvail );
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   680
+        memcpy ( p, s, nAvail );
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   681
+        p[nAvail - 1] = '\0';
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   682
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   683
+        return p;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   684
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   685
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   686
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   687
 #ifdef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   688
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   689
 /* this checks that the policy descriptions read from test-valid-3-lang.policy are correct */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   690
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-sysdeps.c PolicyKit-0.7/src/polkit/polkit-sysdeps.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   691
--- PolicyKit-0.7.orig/src/polkit/polkit-sysdeps.c	Thu Nov 29 05:26:14 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   692
+++ PolicyKit-0.7/src/polkit/polkit-sysdeps.c	Fri Jan 25 15:43:42 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   693
@@ -39,7 +39,20 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   694
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   695
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   696
 #include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   697
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   698
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   699
+#include <fcntl.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   700
+#include <sys/time.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   701
+#if _FILE_OFFSET_BITS==64
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   702
+#undef _FILE_OFFSET_BITS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   703
+#include <procfs.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   704
+#define _FILE_OFFSET_BITS 64
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   705
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   706
+#include <procfs.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   707
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   708
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   709
 #include <sys/inotify.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   710
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   711
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   712
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   713
 #include "polkit-sysdeps.h"
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   714
@@ -74,14 +87,24 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   715
         char *contents;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   716
         size_t length;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   717
         polkit_uint64_t start_time;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   718
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   719
+        struct psinfo info;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   720
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   721
         char **tokens;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   722
         size_t num_tokens;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   723
         char *p;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   724
         char *endp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   725
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   726
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   727
         start_time = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   728
         contents = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   729
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   730
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   731
+        if (polkit_sysdeps_pid_psinfo ( pid, &info)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   732
+                goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   733
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   734
+        start_time = (unsigned long long) (info.pr_start.tv_sec);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   735
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   736
         filename = kit_strdup_printf ("/proc/%d/stat", pid);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   737
         if (filename == NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   738
                 errno = ENOMEM;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   739
@@ -118,10 +141,13 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   740
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   741
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   742
         kit_strfreev (tokens);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   743
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   744
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   745
 out:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   746
+#ifndef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   747
         kit_free (filename);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   748
         kit_free (contents);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   749
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   750
         return start_time;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   751
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   752
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   753
@@ -153,6 +179,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   754
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   755
         ret = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   756
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   757
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   758
+        struct psinfo info;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   759
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   760
+        if (polkit_sysdeps_pid_psinfo (pid, &info)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   761
+                goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   762
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   763
+        ret = strlen (info.pr_psargs);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   764
+        strncpy (out_buf, info.pr_psargs, ret);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   765
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   766
         snprintf (proc_name, sizeof (proc_name), "/proc/%d/exe", pid);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   767
         ret = readlink (proc_name, out_buf, buf_size - 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   768
         if (ret == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   769
@@ -159,6 +194,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   770
                 strncpy (out_buf, "(unknown)", buf_size);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   771
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   772
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   773
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   774
         kit_assert (ret >= 0 && ret < (int) buf_size - 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   775
         out_buf[ret] = '\0';
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   776
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   777
@@ -166,6 +202,26 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   778
         return ret;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   779
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   780
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   781
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   782
+int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   783
+polkit_sysdeps_pid_psinfo (pid_t pid, struct psinfo *ps)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   784
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   785
+        char pname[32];
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   786
+        int  procfd;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   787
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   788
+        (void) snprintf(pname, sizeof(pname), "/proc/%d/psinfo", pid);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   789
+        if ((procfd = open(pname, O_RDONLY)) == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   790
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   791
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   792
+        if (read(procfd, ps, sizeof(struct psinfo)) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   793
+                (void) close(procfd);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   794
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   795
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   796
+        (void) close(procfd);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   797
+        return 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   798
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   799
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   800
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   801
 #ifdef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   802
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   803
 static polkit_bool_t
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   804
diff -ru PolicyKit-0.7.orig/src/polkit-dbus/polkit-read-auth-helper.c PolicyKit-0.7/src/polkit-dbus/polkit-read-auth-helper.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   805
--- PolicyKit-0.7.orig/src/polkit-dbus/polkit-read-auth-helper.c	Thu Nov 29 12:33:10 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   806
+++ PolicyKit-0.7/src/polkit-dbus/polkit-read-auth-helper.c	Fri Jan 25 16:31:42 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   807
@@ -49,6 +49,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   808
 #include <utime.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   809
 #include <fcntl.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   810
 #include <dirent.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   811
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   812
+#include <limits.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   813
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   814
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   815
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   816
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   817
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   818
@@ -183,8 +187,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   819
                 static const char suffix[] = ".auths";
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   820
                 struct passwd *pw;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   821
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   822
+#ifndef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   823
                 if (d->d_type != DT_REG)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   824
                         continue;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   825
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   826
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   827
                 if (d->d_name == NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   828
                         continue;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   829
@@ -282,8 +288,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   830
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   831
 #ifndef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   832
         /* clear the entire environment to avoid attacks using with libraries honoring environment variables */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   833
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   834
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   835
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   836
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   837
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   838
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   839
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   840
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   841
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   842
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   843
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   844
 #endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   845
diff -ru PolicyKit-0.7.orig/src/polkit-dbus/polkit-set-default-helper.c PolicyKit-0.7/src/polkit-dbus/polkit-set-default-helper.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   846
--- PolicyKit-0.7.orig/src/polkit-dbus/polkit-set-default-helper.c	Thu Nov 29 05:30:30 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   847
+++ PolicyKit-0.7/src/polkit-dbus/polkit-set-default-helper.c	Fri Jan 25 16:34:17 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   848
@@ -55,6 +55,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   849
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   850
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   851
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   852
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   853
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   854
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   855
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   856
 static polkit_bool_t
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   857
 set_default (const char *action_id, const char *any, const char *inactive, const char *active)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   858
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   859
@@ -127,8 +131,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   860
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   861
         ret = 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   862
         /* clear the entire environment to avoid attacks using with libraries honoring environment variables */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   863
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   864
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   865
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   866
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   867
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   868
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   869
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   870
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   871
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   872
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   873
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   874
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   875
diff -ru PolicyKit-0.7.orig/src/polkit-grant/polkit-explicit-grant-helper.c PolicyKit-0.7/src/polkit-grant/polkit-explicit-grant-helper.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   876
--- PolicyKit-0.7.orig/src/polkit-grant/polkit-explicit-grant-helper.c	Thu Dec  6 09:34:02 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   877
+++ PolicyKit-0.7/src/polkit-grant/polkit-explicit-grant-helper.c	Fri Jan 25 17:12:10 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   878
@@ -53,6 +53,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   879
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   880
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   881
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   882
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   883
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   884
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   885
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   886
 int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   887
 main (int argc, char *argv[])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   888
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   889
@@ -67,8 +71,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   890
         ret = 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   891
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   892
         /* clear the entire environment to avoid attacks using with libraries honoring environment variables */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   893
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   894
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   895
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   896
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   897
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   898
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   899
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   900
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   901
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   902
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   903
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   904
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   905
diff -ru PolicyKit-0.7.orig/src/polkit-grant/polkit-grant-helper-pam.c PolicyKit-0.7/src/polkit-grant/polkit-grant-helper-pam.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   906
--- PolicyKit-0.7.orig/src/polkit-grant/polkit-grant-helper-pam.c	Thu Nov 29 05:28:31 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   907
+++ PolicyKit-0.7/src/polkit-grant/polkit-grant-helper-pam.c	Fri Jan 25 17:10:54 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   908
@@ -28,6 +28,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   909
  **************************************************************************/
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   910
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   911
 /* TODO: FIXME: XXX: this code needs security review before it can be released! */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   912
+#ifdef HAVE_CONFIG_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   913
+#  include <config.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   914
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   915
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   916
 #include <stdio.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   917
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   918
@@ -38,6 +41,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   919
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   920
 #include <security/pam_appl.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   921
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   922
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   923
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   924
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   925
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   926
 /* Development aid: define PGH_DEBUG to get debugging output. Do _NOT_
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   927
  * enable this in production builds; it may leak passwords and other
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   928
  * sensitive information.
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   929
@@ -60,8 +67,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   930
         pam_h = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   931
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   932
         /* clear the entire environment to avoid attacks using with libraries honoring environment variables */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   933
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   934
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   935
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   936
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   937
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   938
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   939
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   940
                 goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   941
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   942
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   943
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   944
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   945
diff -ru PolicyKit-0.7.orig/src/polkit-grant/polkit-grant-helper.c PolicyKit-0.7/src/polkit-grant/polkit-grant-helper.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   946
--- PolicyKit-0.7.orig/src/polkit-grant/polkit-grant-helper.c	Thu Dec  6 10:48:36 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   947
+++ PolicyKit-0.7/src/polkit-grant/polkit-grant-helper.c	Fri Jan 25 16:35:50 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   948
@@ -52,6 +52,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   949
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   950
 // #include <polkit/polkit-grant-database.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   951
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   952
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   953
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   954
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   955
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   956
 /* Development aid: define PGH_DEBUG to get debugging output. Do _NOT_
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   957
  * enable this in production builds; it may leak passwords and other
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   958
  * sensitive information.
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   959
@@ -546,8 +550,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   960
         ret = 3;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   961
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   962
         /* clear the entire environment to avoid attacks using with libraries honoring environment variables */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   963
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   964
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   965
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   966
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   967
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   968
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   969
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   970
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   971
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   972
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   973
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   974
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   975
diff -ru PolicyKit-0.7.orig/src/polkit-grant/polkit-grant.c PolicyKit-0.7/src/polkit-grant/polkit-grant.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   976
--- PolicyKit-0.7.orig/src/polkit-grant/polkit-grant.c	Thu Nov 29 05:29:25 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   977
+++ PolicyKit-0.7/src/polkit-grant/polkit-grant.c	Fri Jan 25 16:40:18 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   978
@@ -35,6 +35,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   979
 #include <stdio.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   980
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   981
 #include <string.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   982
+#include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   983
 #include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   984
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   985
 #include <sys/wait.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   986
@@ -542,6 +543,49 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   987
         return FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   988
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   989
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   990
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   991
+#define BUFFER_LEN      256
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   992
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   993
+ssize_t getline (char **lineptr, size_t *n, FILE *f)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   994
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   995
+        char ch;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   996
+        size_t m = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   997
+        ssize_t buf_len = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   998
+        char * buf = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   999
+        char * p = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1000
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1001
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1002
+        while ( (ch = getc(f)) !=EOF )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1003
+        {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1004
+                if (errno != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1005
+                        return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1006
+                if ( m++ >= buf_len )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1007
+                {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1008
+                        buf_len += BUFFER_LEN;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1009
+                        buf = (char *) realloc(buf, buf_len + 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1010
+                        if ( buf == NULL )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1011
+                        {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1012
+                                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1013
+                        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1014
+                        p = buf + buf_len - BUFFER_LEN;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1015
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1016
+                if ( ch == '\n' )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1017
+                        break;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1018
+                *p = ch;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1019
+                p++;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1020
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1021
+        if ( m == 0 )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1022
+        {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1023
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1024
+        } else {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1025
+                *p = '\0';
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1026
+                *lineptr = buf;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1027
+                *n = m;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1028
+                return m;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1029
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1030
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1031
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1032
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1033
 #ifdef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1034
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1035
 static polkit_bool_t
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1036
diff -ru PolicyKit-0.7.orig/src/polkit-grant/polkit-revoke-helper.c PolicyKit-0.7/src/polkit-grant/polkit-revoke-helper.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1037
--- PolicyKit-0.7.orig/src/polkit-grant/polkit-revoke-helper.c	Thu Nov 29 13:28:35 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1038
+++ PolicyKit-0.7/src/polkit-grant/polkit-revoke-helper.c	Fri Jan 25 17:12:46 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1039
@@ -52,6 +52,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1040
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1041
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1042
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1043
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1044
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1045
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1046
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1047
 static int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1048
 _write_to_fd (int fd, const char *str, ssize_t str_len)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1049
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1050
@@ -109,8 +113,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1051
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1052
 #ifndef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1053
         /* clear the entire environment to avoid attacks using with libraries honoring environment variables */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1054
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1055
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1056
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1057
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1058
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1059
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1060
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1061
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1062
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1063
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1064
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1065
 #endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1066
diff -ru PolicyKit-0.7.orig/tools/polkit-auth.c PolicyKit-0.7/tools/polkit-auth.c
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1067
--- PolicyKit-0.7.orig/tools/polkit-auth.c	Thu Dec  6 11:30:18 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1068
+++ PolicyKit-0.7/tools/polkit-auth.c	Fri Jan 25 17:19:42 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1069
@@ -37,6 +37,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1070
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1071
 #include <string.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1072
 #include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1073
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1074
+#include <sys/wait.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1075
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1076
 #include <pwd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1077
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1078
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1079
Only in PolicyKit-0.7/tools: polkit-auth.o
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1080
Only in PolicyKit-0.7/tools: polkit-config-file-validate
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1081
Only in PolicyKit-0.7/tools: polkit-config-file-validate.o
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1082
Only in PolicyKit-0.7/tools: polkit-policy-file-validate
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1083
Only in PolicyKit-0.7/tools: polkit-policy-file-validate.o