components/lighttpd/patches/01-drop_privileges.patch
author Jiri Kukacka <jiri.kukacka@oracle.com>
Thu, 09 Jan 2014 03:35:51 -0800
branchs11-update
changeset 2925 d64f6e80d9b1
child 5738 fc0e1d002c9e
child 7159 59b406bc4a3a
permissions -rw-r--r--
17600553 Upgrade lighttpd to version 1.4.33 17487983 Parfait reports number of errors in lighttpd 1.4.23 17488086 problem in UTILITY/LIGHTTPD 17536689 problem in UTILITY/LIGHTTPD
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2925
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     1
Developed in-house, fed back, awaiting accept.
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     2
http://redmine.lighttpd.net/issues/2532
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     3
Solaris-specific: in order to start Lighttpd as non-root
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     4
user, initial user needs elevated privileges. Those
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     5
privileges are unnecessary and should be dropped.
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     6
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     7
--- src/network.c	2013-08-30 04:07:05.000000000 -0700
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     8
+++ src/network.c	2013-10-22 04:07:55.193853968 -0700
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
     9
@@ -21,6 +21,8 @@
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    10
 #include <stdlib.h>
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    11
 #include <assert.h>
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    12
 
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    13
+#include <priv.h>
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    14
+
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    15
 #ifdef USE_OPENSSL
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    16
 # include <openssl/ssl.h>
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    17
 # include <openssl/err.h>
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    18
@@ -497,6 +499,8 @@
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    19
 	size_t i;
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    20
 	network_backend_t backend;
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    21
 
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    22
+	priv_set_t *tset;
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    23
+
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    24
 #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    25
 #ifndef OPENSSL_NO_ECDH
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    26
 	EC_KEY *ecdh;
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    27
@@ -877,6 +881,16 @@
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    28
 		}
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    29
 	}
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    30
 
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    31
+	/* here we drop privileges we won't need any more */
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    32
+	tset = priv_allocset();
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    33
+	priv_emptyset(tset);
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    34
+	priv_addset(tset, PRIV_NET_PRIVADDR);
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    35
+	if (setppriv(PRIV_OFF, PRIV_PERMITTED, tset) != 0) {
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    36
+		perror("Unable to set privileges: ");
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    37
+		return -1;
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    38
+	}
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    39
+	
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    40
+
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    41
 	return 0;
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    42
 }
d64f6e80d9b1 17600553 Upgrade lighttpd to version 1.4.33
Jiri Kukacka <jiri.kukacka@oracle.com>
parents:
diff changeset
    43