patches/PolicyKit-01-solaris.diff
author yippi
Wed, 06 Feb 2008 12:12:35 +0000
changeset 874 69c134bdcaef
child 1569 ada91a9985fd
permissions -rw-r--r--
2008-02-06 Brian Cameron <[email protected]> * SFEpolicykit.spec: Rename from SFEPolicyKit.spec. Now this spec file just builds the PolicyKit module. Fixed Requires and BuildRequires sections. Fixed packaging. * patches/PolicyKit-02-dirfd.diff: Add patch so PolicyKit can build on systems that do not have dirfd. * patches/PolicyKit-02-solaris.diff: Rename from PolicyKit-0.7.diff * SFEpolicykit-gnome.spec: Separate spec file for building PolicyKit-gome. Fixed Requires and BuildRequires sections. Fixed packaging. * base-specs/PolicyKit.spec, base-specs/PolicyKit-gnome.spec: Fix configure call. * SFEpitivi.spec: Depend on SFEpython-zope-interface and SFEpython-setuptools instead of SFEzope-interface and SFE-setuptools.
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-message.h PolicyKit-0.7/src/kit/kit-message.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    84
--- PolicyKit-0.7.orig/src/kit/kit-message.h	Thu Nov 29 05:31:41 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    85
+++ PolicyKit-0.7/src/kit/kit-message.h	Fri Jan 25 15:02:22 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    86
@@ -38,8 +38,13 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    87
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    88
 KIT_BEGIN_DECLS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    89
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    90
+#ifdef __sun
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    91
+void kit_debug   (const char *format, ...);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    92
+void kit_warning (const char *format, ...);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    93
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    94
 void kit_debug   (const char *format, ...) __attribute__((__format__ (__printf__, 1, 2)));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    95
 void kit_warning (const char *format, ...) __attribute__((__format__ (__printf__, 1, 2)));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    96
+#endif
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
 KIT_END_DECLS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
    99
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   100
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
   101
--- 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
   102
+++ 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
   103
@@ -156,9 +156,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   104
  * @flags: A combination of flags from #KitSpawnFlags
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   105
  * @argv: #NULL terminated argument vector
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   106
  * @envp: #NULL terminated environment or #NULL to inherit parents;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   107
- * @stdin: String to write to stdin of child or #NULL
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   108
- * @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
   109
- * @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
   110
+ * @stdinp: String to write to stdin of child or #NULL
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   111
+ * @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
   112
+ * @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
   113
  * @out_exit_status: Return location for exit status
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   114
  *
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   115
  * Executes a child process and waits for the child process to exit
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   116
@@ -175,9 +175,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   117
                 KitSpawnFlags   flags,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   118
                 char          **argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   119
                 char          **envp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   120
-                char           *stdin,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   121
-                char          **stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   122
-                char          **stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   123
+                char           *stdinp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   124
+                char          **stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   125
+                char          **stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   126
                 int            *out_exit_status)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   127
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   128
         kit_bool_t ret;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   129
@@ -191,28 +191,28 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   130
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   131
         kit_return_val_if_fail (argv != NULL, FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   132
         kit_return_val_if_fail (out_exit_status != NULL, FALSE);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   133
-        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
   134
-        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
   135
-        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
   136
+        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
   137
+        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
   138
+        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
   139
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   140
-        if (stdout != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   141
-                *stdout = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   142
-        if (stderr != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   143
-                *stderr = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   144
+        if (stdoutp != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   145
+                *stdoutp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   146
+        if (stderrp != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   147
+                *stderrp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   148
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   149
-        if (stdin != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   150
+        if (stdinp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   151
                 if (pipe (stdin_pipe) != 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   152
                         goto out;
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   156
-        if (stdout != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   157
+        if (stdoutp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   158
                 if (pipe (stdout_pipe) != 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   159
                         goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   160
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   161
         }
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
-        if (stderr != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   164
+        if (stderrp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   165
                 if (pipe (stderr_pipe) != 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   166
                         goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   167
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   168
@@ -260,9 +260,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   169
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   170
                 }
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
-                /* set stdin, stdout and stderr */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   173
+                /* set stdinp, stdoutp and stderrp */
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
-                if (stdin != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   176
+                if (stdinp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   177
                         if (_sane_dup2 (stdin_pipe[0], 0) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   178
                                 exit (128 + errno);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   179
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   180
@@ -272,7 +272,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   181
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   182
                 }
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
-                if (stdout != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   185
+                if (stdoutp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   186
                         if (_sane_dup2 (stdout_pipe[1], 1) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   187
                                 exit (128 + errno);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   188
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   189
@@ -282,7 +282,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   190
                         }
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 (stderr != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   194
+                if (stderrp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   195
                         if (_sane_dup2 (stderr_pipe[1], 2) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   196
                                 exit (128 + errno);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   197
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   198
@@ -322,7 +322,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   199
                         close (stderr_pipe[1]);
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
-                wp = stdin;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   203
+                wp = stdinp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   204
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   205
                 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
   206
                         int ret;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   207
@@ -375,7 +375,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   208
                         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   209
                         
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   210
                         if (stdout_pipe[0] != -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   211
-                                num_read = _read_from (stdout_pipe[0], stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   212
+                                num_read = _read_from (stdout_pipe[0], stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   213
                                 if (num_read == 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   214
                                         close (stdout_pipe[0]);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   215
                                         stdout_pipe[0] = -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   216
@@ -385,7 +385,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   217
                         }
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_pipe[0] != -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   220
-                                num_read = _read_from (stderr_pipe[0], stderr);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   221
+                                num_read = _read_from (stderr_pipe[0], stderrp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   222
                                 if (num_read == 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   223
                                         close (stderr_pipe[0]);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   224
                                         stderr_pipe[0] = -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   225
@@ -424,13 +424,13 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   226
                 close (stderr_pipe[0]);
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
         if (!ret) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   229
-                if (stdout != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   230
-                        kit_free (*stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   231
-                        *stdout = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   232
+                if (stdoutp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   233
+                        kit_free (*stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   234
+                        *stdoutp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   235
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   236
-                if (stderr != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   237
-                        kit_free (*stderr);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   238
-                        *stderr = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   239
+                if (stderrp != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   240
+                        kit_free (*stderrp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   241
+                        *stderrp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   242
                 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   243
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   244
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   245
@@ -483,8 +483,8 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   246
                 "echo -n \"$value\""                       "\n"
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   247
                 "exit 0"                                   "\n";
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   248
         char *argv[] = {"/tmp/kit-spawn-test", NULL};
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   249
-        char *stdout;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   250
-        char *stderr;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   251
+        char *stdoutp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   252
+        char *stderrp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   253
         int exit_status;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   254
         struct stat statbuf;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   255
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   256
@@ -495,14 +495,14 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   257
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   258
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   259
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   260
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   261
-                                    &stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   262
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   263
+                                    &stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   264
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   265
                         kit_assert (WEXITSTATUS (exit_status) == 42);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   266
-                        kit_assert (stdout != NULL && strcmp (stdout, "Hello World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   267
-                        kit_assert (stderr != NULL && strcmp (stderr, "Goodbye World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   268
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   269
-                        kit_free (stderr);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   270
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "Hello World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   271
+                        kit_assert (stderrp != NULL && strcmp (stderrp, "Goodbye World\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   272
+                        kit_free (stdoutp);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   273
+                        kit_free (stderrp);
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
                 if (kit_spawn_sync ("/",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   277
@@ -526,12 +526,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
                                     NULL,
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
-                                    &stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   283
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   284
+                                    &stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   285
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   286
                         kit_assert (WEXITSTATUS (exit_status) == 43);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   287
-                        kit_assert (stdout == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   288
-                        kit_assert (stderr == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   289
+                        kit_assert (stdoutp == NULL);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   290
+                        kit_assert (stderrp == NULL);
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   293
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   294
@@ -546,12 +546,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   295
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   296
                                     envp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   297
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   298
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   299
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   300
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   301
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   302
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   303
-                        kit_assert (stdout != NULL && strcmp (stdout, "some_value") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   304
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   305
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "some_value") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   306
+                        kit_free (stdoutp);
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   309
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   310
@@ -606,12 +606,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   311
                                     argv,
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
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   314
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   315
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   316
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   317
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   318
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   319
-                        kit_assert (stdout != NULL && strcmp (stdout, "/tmp\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   320
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   321
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "/tmp\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   322
+                        kit_free (stdoutp);
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   325
                 kit_assert (stat ("/usr", &statbuf) == 0 && S_ISDIR (statbuf.st_mode));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   326
@@ -620,12 +620,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   327
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   328
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   329
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   330
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   331
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   332
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   333
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   334
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   335
-                        kit_assert (stdout != NULL && strcmp (stdout, "/usr\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   336
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   337
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "/usr\n") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   338
+                        kit_free (stdoutp);
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   341
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   342
@@ -650,12 +650,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   343
                                     argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   344
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   345
                                     "foobar0\nfoobar1",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   346
-                                    &stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   347
+                                    &stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   348
                                     NULL,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   349
                                     &exit_status)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   350
                         kit_assert (WEXITSTATUS (exit_status) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   351
-                        kit_assert (stdout != NULL && strcmp (stdout, "foobar0 foobar1") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   352
-                        kit_free (stdout);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   353
+                        kit_assert (stdoutp != NULL && strcmp (stdoutp, "foobar0 foobar1") == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   354
+                        kit_free (stdoutp);
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   357
                 kit_assert (unlink (path) == 0);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   358
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
   359
--- 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
   360
+++ 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
   361
@@ -57,9 +57,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   362
                            KitSpawnFlags   flags,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   363
                            char          **argv,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   364
                            char          **envp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   365
-                           char           *stdin,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   366
-                           char          **stdout,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   367
-                           char          **stderr,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   368
+                           char           *stdinp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   369
+                           char          **stdoutp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   370
+                           char          **stderrp,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   371
                            int            *out_exit_status);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   372
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   373
 KIT_END_DECLS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   374
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
   375
--- 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
   376
+++ 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
   377
@@ -127,6 +127,26 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   378
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   379
 #endif /* KIT_BUILD_TESTS */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   380
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   381
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   382
+int vasprintf(char **strp, const char *fmt, va_list ap)
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
+        int size;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   385
+        va_list ap2;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   386
+        char s;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   387
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   388
+        *strp = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   389
+        va_copy(ap2, ap);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   390
+        size = vsnprintf(&s, 1, fmt, ap2);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   391
+        va_end(ap2);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   392
+        *strp = malloc(size + 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   393
+        if (!*strp)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   394
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   395
+        vsnprintf(*strp, size + 1, fmt, ap);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   396
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   397
+        return size;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   398
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   399
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   400
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   401
 /**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   402
  * kit_strdup_printf:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   403
  * @format: sprintf(3) format string
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   404
diff -ru PolicyKit-0.7.orig/src/kit/kit-string.h PolicyKit-0.7/src/kit/kit-string.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   405
--- PolicyKit-0.7.orig/src/kit/kit-string.h	Sat Dec  1 07:22:06 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   406
+++ PolicyKit-0.7/src/kit/kit-string.h	Fri Jan 25 14:47:39 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   407
@@ -40,7 +40,11 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   408
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   409
 char *kit_strdup         (const char *s);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   410
 char *kit_strndup        (const char *s, size_t n);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   411
+#ifdef __sun
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   412
+char *kit_strdup_printf  (const char *format, ...);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   413
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   414
 char *kit_strdup_printf  (const char *format, ...) __attribute__((__format__ (__printf__, 1, 2)));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   415
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   416
 char *kit_strdup_vprintf (const char *format, va_list args);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   417
 char *kit_str_append     (char *s, const char *s2);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   418
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   419
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
   420
--- 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
   421
+++ 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
   422
@@ -27,8 +27,15 @@
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
  **************************************************************************/
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   425
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   426
+#ifdef HAVE_CONFIG_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   427
+#  include <config.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   428
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   429
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   430
 #include <stdio.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   431
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   432
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   433
+#include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   434
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   435
 #include <kit/kit-test.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   436
 #include <kit/kit-memory.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   437
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   438
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   439
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
   440
--- 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
   441
+++ 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
   442
@@ -72,6 +72,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   443
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   444
 void kit_print_backtrace (void);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   445
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   446
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   447
+#define __PRETTY_FUNCTION__ __func__
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   448
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   449
 /**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   450
  * kit_assert:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   451
  * @expr: expression
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   452
@@ -136,6 +139,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   453
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   454
 #define _KIT_INSIDE_KIT_H 1
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   455
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   456
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   457
+#include <sys/types.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 <kit/kit-memory.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   460
 #include <kit/kit-string.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   461
 #include <kit/kit-list.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   462
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
   463
--- 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
   464
+++ 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
   465
@@ -39,7 +39,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   466
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   467
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   468
 #include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   469
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   470
+#include <port.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   471
+#include <sys/stat.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   472
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   473
 #include <sys/inotify.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   474
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   475
 #include <regex.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   476
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   477
 #include <regex.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   478
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
   479
--- 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
   480
+++ 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
   481
@@ -39,7 +39,12 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   482
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   483
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   484
 #include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   485
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   486
+#include <port.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   487
+#include <sys/stat.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   488
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   489
 #include <sys/inotify.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   490
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   491
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   492
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   493
 #include "polkit-config.h"
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   494
@@ -153,7 +158,60 @@
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
         /* NOTE: we don't load the configuration file until it's needed */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   497
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   498
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   499
         if (pk_context->io_add_watch_func != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   500
+                pk_context->inotify_fd = port_create ();
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   501
+                if (pk_context->inotify_fd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   502
+                        _pk_debug ("failed to port_create: %s", strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   503
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   504
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   505
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   506
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   507
+                /* Watch the /etc/PolicyKit/PolicyKit.conf file */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   508
+                pk_context->inotify_config_wd = port_add_watch (pk_context->inotify_fd,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   509
+                                                                   PACKAGE_SYSCONF_DIR "/PolicyKit/PolicyKit.conf",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   510
+                                                                   FILE_MODIFIED | FILE_ATTRIB);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   511
+                if (pk_context->inotify_config_wd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   512
+                        _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
   513
+                                   strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   514
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   515
+                        goto error;
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
+                /* Watch the /usr/share/PolicyKit/policy directory */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   519
+                pk_context->inotify_policy_wd = port_add_watch (pk_context->inotify_fd,
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   520
+                                                                   PACKAGE_DATA_DIR "/PolicyKit/policy",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   521
+                                                                   FILE_MODIFIED | FILE_ATTRIB);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   522
+                if (pk_context->inotify_policy_wd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   523
+                        _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
   524
+                                   strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   525
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   526
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   527
+                }
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
+#ifdef POLKIT_AUTHDB_DEFAULT
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   530
+                /* Watch the /var/lib/misc/PolicyKit.reload file */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   531
+                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
   532
+                                                                       PACKAGE_LOCALSTATE_DIR "/lib/misc/PolicyKit.reload",
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   533
+                                                                       FILE_MODIFIED | FILE_ATTRIB);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   534
+                if (pk_context->inotify_grant_perm_wd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   535
+                        _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
   536
+                                   strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   537
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   538
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   539
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   540
+#endif
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
+                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
   543
+                if (pk_context->inotify_fd_watch_id == 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   544
+                        _pk_debug ("failed to add io watch");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   545
+                        /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   546
+                        goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   547
+                }
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
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   550
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   551
+        if (pk_context->io_add_watch_func != NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   552
                 pk_context->inotify_fd = inotify_init ();
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   553
                 if (pk_context->inotify_fd < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   554
                         _pk_debug ("failed to initialize inotify: %s", strerror (errno));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   555
@@ -203,6 +261,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   556
                         goto error;
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
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   559
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   560
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   561
         return TRUE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   562
 error:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   563
@@ -209,7 +268,72 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   564
         return FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   565
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   566
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   567
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   568
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   569
+struct fileportinfo {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   570
+        struct file_obj fobj;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   571
+        int events;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   572
+        int port;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   573
+};
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
+ * port_add_watch:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   577
+ * @port: the port object
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   578
+ * @name: filename which will be added to the port
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   579
+ * @events: the event which will be watched for
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
+ * add file watch .
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   582
+ *
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   583
+ * Returns: the object
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   584
+ **/
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   585
+int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   586
+port_add_watch (int port, const char *name, uint32_t events)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   587
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   588
+        struct fileportinfo *fpi;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   589
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   590
+        if ( (fpi = kit_malloc (sizeof(struct fileportinfo)) ) == NULL ) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   591
+                _pk_debug ("Faile to kit_malloc!");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   592
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   593
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   594
+        }
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
+        fpi->fobj.fo_name = strdup (name);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   597
+        fpi->events = events;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   598
+        fpi->port = port;
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
+        if ( file_associate (fpi, events) < 0 ) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   601
+                _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
   602
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   603
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   604
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   605
+        return 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   606
+}
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
+int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   609
+file_associate (struct fileportinfo *fpinfo, int events)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   610
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   611
+        struct stat sb;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   612
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   613
+        if ( stat (fpinfo->fobj.fo_name, &sb) == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   614
+                _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
   615
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   616
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   617
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   618
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   619
+        fpinfo->fobj.fo_atime = sb.st_atim;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   620
+        fpinfo->fobj.fo_mtime = sb.st_mtim;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   621
+        fpinfo->fobj.fo_ctime = sb.st_ctim;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   622
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   623
+        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
   624
+                _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
   625
+                /* TODO: set error */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   626
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   627
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   628
+        return 0;
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
+#endif
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
+/**
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   633
  * polkit_context_ref:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   634
  * @pk_context: the context object
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   635
  * 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   636
@@ -296,7 +420,32 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   637
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   638
         config_changed = FALSE;
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
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   641
         if (fd == pk_context->inotify_fd) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   642
+                port_event_t pe;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   643
+                struct file_obj *fobjp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   644
+                struct fileportinfo *fpip;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   645
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   646
+                while ( !port_get (fd, &pe, NULL) ) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   647
+                        switch (pe.portev_source) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   648
+                        case PORT_SOURCE_FILE:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   649
+                                fpip = (struct fileportinfo *)pe.portev_object;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   650
+                                fobjp = &fpip->fobj;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   651
+                                _pk_debug ("filename = %s, events = %d", fobjp->fo_name, pe.portev_events);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   652
+                                config_changed = TRUE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   653
+                                _pk_debug ("Config changed");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   654
+                                file_associate ((struct fileportinfo *)pe.portev_object, pe.portev_events);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   655
+                                break;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   656
+                        default:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   657
+                                _pk_debug ("Event from unexpected source");
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   658
+                        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   659
+                        if ( config_changed )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   660
+                                break;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   661
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   662
+        }
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
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   665
+        if (fd == pk_context->inotify_fd) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   666
 /* size of the event structure, not counting name */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   667
 #define EVENT_SIZE  (sizeof (struct inotify_event))
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   668
 /* reasonable guess as to size of 1024 events */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   669
@@ -327,6 +476,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   670
                         i += EVENT_SIZE + event->len;
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
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   673
+#endif
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 (config_changed) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   676
                 polkit_context_force_reload (pk_context);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   677
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-debug.h PolicyKit-0.7/src/polkit/polkit-debug.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   678
--- PolicyKit-0.7.orig/src/polkit/polkit-debug.h	Thu Nov 29 05:28:01 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   679
+++ PolicyKit-0.7/src/polkit/polkit-debug.h	Fri Jan 25 15:38:43 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   680
@@ -30,7 +30,11 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   681
 #ifndef POLKIT_DEBUG_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   682
 #define POLKIT_DEBUG_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   683
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   684
+#ifdef __sun
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   685
+void _pk_debug (const char *format, ...);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   686
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   687
 void _pk_debug (const char *format, ...) __attribute__((__format__ (__printf__, 1, 2)));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   688
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   689
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   690
 #endif /* POLKIT_DEBUG_H */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   691
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   692
diff -ru PolicyKit-0.7.orig/src/polkit/polkit-error.h PolicyKit-0.7/src/polkit/polkit-error.h
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   693
--- PolicyKit-0.7.orig/src/polkit/polkit-error.h	Thu Nov 29 05:25:31 2007
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   694
+++ PolicyKit-0.7/src/polkit/polkit-error.h	Fri Jan 25 15:37:44 2008
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   695
@@ -89,7 +89,11 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   696
 PolKitErrorCode  polkit_error_get_error_code (PolKitError *error);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   697
 const char      *polkit_error_get_error_message (PolKitError *error);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   698
 void             polkit_error_free (PolKitError *error);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   699
+#ifdef __sun
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   700
+polkit_bool_t    polkit_error_set_error (PolKitError **error, PolKitErrorCode error_code, const char *format, ...);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   701
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   702
 polkit_bool_t    polkit_error_set_error (PolKitError **error, PolKitErrorCode error_code, const char *format, ...) __attribute__((__format__ (__printf__, 3, 4)));
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   703
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   704
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   705
 POLKIT_END_DECLS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   706
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   707
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
   708
--- 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
   709
+++ 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
   710
@@ -127,8 +127,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   711
                 char *filename;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   712
                 static const char suffix[] = ".policy";
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   713
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   714
+#ifndef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   715
                 if (d->d_type != DT_REG)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   716
                         continue;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   717
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   718
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   719
                 filename = d->d_name;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   720
                 name_len = strlen (filename);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   721
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
   722
--- 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
   723
+++ 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
   724
@@ -804,7 +804,27 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   725
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   726
         return FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   727
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   728
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   729
+char *strndup ( const char *s, size_t n)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   730
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   731
+        size_t nAvail;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   732
+        char *p;
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
+        if ( !s )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   735
+                return 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   736
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   737
+        if ( strlen(s) > n )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   738
+                nAvail = n + 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   739
+        else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   740
+                nAvail = strlen(s) + 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   741
+        p = malloc ( nAvail );
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   742
+        memcpy ( p, s, nAvail );
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   743
+        p[nAvail - 1] = '\0';
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
+        return p;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   746
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   747
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   748
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   749
 #ifdef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   750
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   751
 /* 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
   752
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
   753
--- 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
   754
+++ 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
   755
@@ -39,7 +39,20 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   756
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   757
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   758
 #include <errno.h>
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
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   761
+#include <fcntl.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   762
+#include <sys/time.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   763
+#if _FILE_OFFSET_BITS==64
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   764
+#undef _FILE_OFFSET_BITS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   765
+#include <procfs.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   766
+#define _FILE_OFFSET_BITS 64
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   767
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   768
+#include <procfs.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   769
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   770
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   771
 #include <sys/inotify.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   772
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   773
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   774
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   775
 #include "polkit-sysdeps.h"
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   776
@@ -74,14 +87,24 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   777
         char *contents;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   778
         size_t length;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   779
         polkit_uint64_t start_time;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   780
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   781
+        struct psinfo info;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   782
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   783
         char **tokens;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   784
         size_t num_tokens;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   785
         char *p;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   786
         char *endp;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   787
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   788
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   789
         start_time = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   790
         contents = NULL;
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
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   793
+        if (polkit_sysdeps_pid_psinfo ( pid, &info)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   794
+                goto out;
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
+        start_time = (unsigned long long) (info.pr_start.tv_sec);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   797
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   798
         filename = kit_strdup_printf ("/proc/%d/stat", pid);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   799
         if (filename == NULL) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   800
                 errno = ENOMEM;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   801
@@ -118,10 +141,13 @@
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
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   804
         kit_strfreev (tokens);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   805
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   806
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   807
 out:
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   808
+#ifndef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   809
         kit_free (filename);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   810
         kit_free (contents);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   811
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   812
         return start_time;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   813
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   814
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   815
@@ -153,6 +179,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   816
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   817
         ret = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   818
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   819
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   820
+        struct psinfo info;
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
+        if (polkit_sysdeps_pid_psinfo (pid, &info)) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   823
+                goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   824
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   825
+        ret = strlen (info.pr_psargs);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   826
+        strncpy (out_buf, info.pr_psargs, ret);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   827
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   828
         snprintf (proc_name, sizeof (proc_name), "/proc/%d/exe", pid);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   829
         ret = readlink (proc_name, out_buf, buf_size - 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   830
         if (ret == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   831
@@ -159,6 +194,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   832
                 strncpy (out_buf, "(unknown)", buf_size);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   833
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   834
         }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   835
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   836
         kit_assert (ret >= 0 && ret < (int) buf_size - 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   837
         out_buf[ret] = '\0';
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   838
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   839
@@ -166,6 +202,26 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   840
         return ret;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   841
 }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   842
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   843
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   844
+int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   845
+polkit_sysdeps_pid_psinfo (pid_t pid, struct psinfo *ps)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   846
+{
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   847
+        char pname[32];
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   848
+        int  procfd;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   849
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   850
+        (void) snprintf(pname, sizeof(pname), "/proc/%d/psinfo", pid);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   851
+        if ((procfd = open(pname, O_RDONLY)) == -1) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   852
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   853
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   854
+        if (read(procfd, ps, sizeof(struct psinfo)) < 0) {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   855
+                (void) close(procfd);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   856
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   857
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   858
+        (void) close(procfd);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   859
+        return 0;
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
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   862
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   863
 #ifdef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   864
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   865
 static polkit_bool_t
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   866
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
   867
--- 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
   868
+++ 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
   869
@@ -49,6 +49,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   870
 #include <utime.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   871
 #include <fcntl.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   872
 #include <dirent.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   873
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   874
+#include <limits.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   875
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   876
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   877
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   878
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   879
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   880
@@ -183,8 +187,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   881
                 static const char suffix[] = ".auths";
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   882
                 struct passwd *pw;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   883
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   884
+#ifndef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   885
                 if (d->d_type != DT_REG)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   886
                         continue;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   887
+#endif
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
                 if (d->d_name == NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   890
                         continue;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   891
@@ -282,8 +288,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   892
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   893
 #ifndef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   894
         /* 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
   895
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   896
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   897
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   898
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   899
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   900
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   901
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   902
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   903
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   904
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   905
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   906
 #endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   907
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
   908
--- 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
   909
+++ 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
   910
@@ -55,6 +55,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   911
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   912
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   913
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   914
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   915
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   916
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   917
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   918
 static polkit_bool_t
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   919
 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
   920
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   921
@@ -127,8 +131,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   922
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   923
         ret = 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   924
         /* 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
   925
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   926
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   927
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   928
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   929
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   930
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   931
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   932
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   933
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   934
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   935
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   936
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   937
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
   938
--- 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
   939
+++ 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
   940
@@ -53,6 +53,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   941
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   942
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   943
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   944
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   945
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   946
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   947
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   948
 int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   949
 main (int argc, char *argv[])
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   950
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   951
@@ -67,8 +71,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   952
         ret = 1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   953
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   954
         /* 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
   955
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   956
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   957
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   958
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   959
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   960
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   961
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   962
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   963
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   964
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   965
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   966
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   967
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
   968
--- 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
   969
+++ 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
   970
@@ -28,6 +28,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   971
  **************************************************************************/
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   972
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   973
 /* 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
   974
+#ifdef HAVE_CONFIG_H
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   975
+#  include <config.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   976
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   977
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   978
 #include <stdio.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   979
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   980
@@ -38,6 +41,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   981
 #include <syslog.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   982
 #include <security/pam_appl.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   983
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   984
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   985
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   986
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   987
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   988
 /* Development aid: define PGH_DEBUG to get debugging output. Do _NOT_
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   989
  * enable this in production builds; it may leak passwords and other
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   990
  * sensitive information.
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   991
@@ -60,8 +67,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   992
         pam_h = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   993
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   994
         /* 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
   995
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   996
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   997
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   998
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
   999
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1000
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1001
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1002
                 goto error;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1003
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1004
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1005
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1006
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1007
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
  1008
--- 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
  1009
+++ 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
  1010
@@ -52,6 +52,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1011
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1012
 // #include <polkit/polkit-grant-database.h>
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
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1015
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1016
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1017
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1018
 /* Development aid: define PGH_DEBUG to get debugging output. Do _NOT_
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1019
  * enable this in production builds; it may leak passwords and other
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1020
  * sensitive information.
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1021
@@ -546,8 +550,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1022
         ret = 3;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1023
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1024
         /* 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
  1025
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1026
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1027
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1028
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1029
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1030
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1031
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1032
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1033
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1034
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1035
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1036
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1037
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
  1038
--- 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
  1039
+++ 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
  1040
@@ -35,6 +35,7 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1041
 #include <stdio.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1042
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1043
 #include <string.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1044
+#include <errno.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1045
 #include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1046
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1047
 #include <sys/wait.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1048
@@ -542,6 +543,49 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1049
         return FALSE;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1050
 }
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
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1053
+#define BUFFER_LEN      256
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1054
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1055
+ssize_t getline (char **lineptr, size_t *n, FILE *f)
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
+        char ch;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1058
+        size_t m = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1059
+        ssize_t buf_len = 0;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1060
+        char * buf = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1061
+        char * p = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1062
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1063
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1064
+        while ( (ch = getc(f)) !=EOF )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1065
+        {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1066
+                if (errno != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1067
+                        return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1068
+                if ( m++ >= buf_len )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1069
+                {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1070
+                        buf_len += BUFFER_LEN;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1071
+                        buf = (char *) realloc(buf, buf_len + 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1072
+                        if ( buf == NULL )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1073
+                        {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1074
+                                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1075
+                        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1076
+                        p = buf + buf_len - BUFFER_LEN;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1077
+                }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1078
+                if ( ch == '\n' )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1079
+                        break;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1080
+                *p = ch;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1081
+                p++;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1082
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1083
+        if ( m == 0 )
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1084
+        {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1085
+                return -1;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1086
+        } else {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1087
+                *p = '\0';
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1088
+                *lineptr = buf;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1089
+                *n = m;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1090
+                return m;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1091
+        }
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1092
+}
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1093
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1094
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1095
 #ifdef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1096
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1097
 static polkit_bool_t
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1098
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
  1099
--- 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
  1100
+++ 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
  1101
@@ -52,6 +52,10 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1102
 #include <polkit-dbus/polkit-dbus.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1103
 #include <polkit/polkit-private.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1104
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1105
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1106
+#define LOG_AUTHPRIV    (10<<3)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1107
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1108
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1109
 static int
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1110
 _write_to_fd (int fd, const char *str, ssize_t str_len)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1111
 {
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1112
@@ -109,8 +113,15 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1113
 
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1114
 #ifndef POLKIT_BUILD_TESTS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1115
         /* 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
  1116
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1117
+        extern char **environ;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1118
+
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1119
+        if (environ != NULL)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1120
+                environ[0] = NULL;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1121
+#else
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1122
         if (clearenv () != 0)
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1123
                 goto out;
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1124
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1125
         /* set a minimal environment */
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1126
         setenv ("PATH", "/usr/sbin:/usr/bin:/sbin:/bin", 1);
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1127
 #endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1128
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
  1129
--- 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
  1130
+++ 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
  1131
@@ -37,6 +37,9 @@
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1132
 #include <stdlib.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1133
 #include <string.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1134
 #include <sys/types.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1135
+#ifdef HAVE_SOLARIS
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1136
+#include <sys/wait.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1137
+#endif
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1138
 #include <pwd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1139
 #include <grp.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1140
 #include <unistd.h>
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1141
Only in PolicyKit-0.7/tools: polkit-auth.o
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1142
Only in PolicyKit-0.7/tools: polkit-config-file-validate
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1143
Only in PolicyKit-0.7/tools: polkit-config-file-validate.o
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1144
Only in PolicyKit-0.7/tools: polkit-policy-file-validate
69c134bdcaef 2008-02-06 Brian Cameron <[email protected]>
yippi
parents:
diff changeset
  1145
Only in PolicyKit-0.7/tools: polkit-policy-file-validate.o