aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/04_drop-capabilities.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/04_drop-capabilities.dpatch')
-rw-r--r--debian/patches/04_drop-capabilities.dpatch231
1 files changed, 24 insertions, 207 deletions
diff --git a/debian/patches/04_drop-capabilities.dpatch b/debian/patches/04_drop-capabilities.dpatch
index 8ee8786667..b11f6fea9e 100644
--- a/debian/patches/04_drop-capabilities.dpatch
+++ b/debian/patches/04_drop-capabilities.dpatch
@@ -5,10 +5,10 @@
## DP: Drop all capabilities but CAP_NET_RAW
@DPATCH@
-diff -urNad wireshark-0.99.2~/configure.in wireshark-0.99.2/configure.in
---- wireshark-0.99.2~/configure.in 2006-07-18 21:59:41.000000000 +0200
-+++ wireshark-0.99.2/configure.in 2006-07-18 21:59:46.000000000 +0200
-@@ -831,6 +831,47 @@
+diff -urNad wireshark-0.99.4/configure.in /tmp/dpep.4XA51P/wireshark-0.99.4/configure.in
+--- wireshark-0.99.4/configure.in 2006-11-01 10:29:08.241544023 +0100
++++ /tmp/dpep.4XA51P/wireshark-0.99.4/configure.in 2006-11-01 10:29:56.756554526 +0100
+@@ -869,6 +869,47 @@
fi
@@ -56,15 +56,15 @@ diff -urNad wireshark-0.99.2~/configure.in wireshark-0.99.2/configure.in
dnl Check if wireshark should be installed setuid
AC_ARG_ENABLE(setuid-install,
[ --enable-setuid-install install wireshark as setuid. DANGEROUS!!! [default=no]],enable_setuid_install=$enableval,enable_setuid_install=no)
-@@ -1448,3 +1489,4 @@
- echo " Use IPv6 name resolution : $enable_ipv6"
- echo " Use UCD SNMP/Net-SNMP library : $snmp_libs_message"
- echo " Use gnutls library : $tls_message"
-+echo " Use cap library : $cap_message"
-diff -urNad wireshark-0.99.2~/gtk/main.c wireshark-0.99.2/gtk/main.c
---- wireshark-0.99.2~/gtk/main.c 2006-07-17 21:56:45.000000000 +0200
-+++ wireshark-0.99.2/gtk/main.c 2006-07-18 21:59:46.000000000 +0200
-@@ -1718,6 +1718,9 @@
+@@ -1480,3 +1521,4 @@
+ echo " Use IPv6 name resolution : $enable_ipv6"
+ echo " Use UCD SNMP/Net-SNMP library : $snmp_libs_message"
+ echo " Use gnutls library : $tls_message"
++echo " Use cap library : $cap_message"
+diff -urNad wireshark-0.99.4/gtk/main.c /tmp/dpep.4XA51P/wireshark-0.99.4/gtk/main.c
+--- wireshark-0.99.4/gtk/main.c 2006-11-01 10:28:14.113375310 +0100
++++ /tmp/dpep.4XA51P/wireshark-0.99.4/gtk/main.c 2006-11-01 10:29:11.095132827 +0100
+@@ -1775,6 +1775,9 @@
{
gchar *capture_msg;
@@ -74,10 +74,10 @@ diff -urNad wireshark-0.99.2~/gtk/main.c wireshark-0.99.2/gtk/main.c
gtk_statusbar_pop(GTK_STATUSBAR(packets_bar), packets_ctx);
-diff -urNad wireshark-0.99.2~/tshark.c wireshark-0.99.2/tshark.c
---- wireshark-0.99.2~/tshark.c 2006-07-17 22:00:06.000000000 +0200
-+++ wireshark-0.99.2/tshark.c 2006-07-18 22:01:35.000000000 +0200
-@@ -749,6 +749,10 @@
+diff -urNad wireshark-0.99.4/tshark.c /tmp/dpep.4XA51P/wireshark-0.99.4/tshark.c
+--- wireshark-0.99.4/tshark.c 2006-11-01 10:28:14.115375722 +0100
++++ /tmp/dpep.4XA51P/wireshark-0.99.4/tshark.c 2006-11-01 10:29:11.097133240 +0100
+@@ -751,6 +751,10 @@
capture_opts_init(&capture_opts, NULL /* cfile */);
#endif
@@ -88,9 +88,9 @@ diff -urNad wireshark-0.99.2~/tshark.c wireshark-0.99.2/tshark.c
timestamp_set_type(TS_RELATIVE);
timestamp_set_precision(TS_PREC_AUTO);
-diff -urNad wireshark-0.99.2~/util.c wireshark-0.99.2/util.c
---- wireshark-0.99.2~/util.c 2006-07-17 22:00:05.000000000 +0200
-+++ wireshark-0.99.2/util.c 2006-07-18 21:59:46.000000000 +0200
+diff -urNad wireshark-0.99.4/util.c /tmp/dpep.4XA51P/wireshark-0.99.4/util.c
+--- wireshark-0.99.4/util.c 2006-11-01 10:28:14.116375929 +0100
++++ /tmp/dpep.4XA51P/wireshark-0.99.4/util.c 2006-11-01 10:29:11.098133446 +0100
@@ -40,6 +40,10 @@
#include <epan/address.h>
#include <epan/addr_resolv.h>
@@ -102,7 +102,7 @@ diff -urNad wireshark-0.99.2~/util.c wireshark-0.99.2/util.c
#include "util.h"
/*
-@@ -180,3 +184,46 @@
+@@ -192,3 +196,46 @@
}
return "";
}
@@ -149,9 +149,9 @@ diff -urNad wireshark-0.99.2~/util.c wireshark-0.99.2/util.c
+ cap_free(&cap_d);
+}
+#endif /* HAVE_LIBCAP */
-diff -urNad wireshark-0.99.2~/util.h wireshark-0.99.2/util.h
---- wireshark-0.99.2~/util.h 2006-07-17 22:00:06.000000000 +0200
-+++ wireshark-0.99.2/util.h 2006-07-18 22:01:52.000000000 +0200
+diff -urNad wireshark-0.99.4/util.h /tmp/dpep.4XA51P/wireshark-0.99.4/util.h
+--- wireshark-0.99.4/util.h 2006-11-01 10:28:14.116375929 +0100
++++ /tmp/dpep.4XA51P/wireshark-0.99.4/util.h 2006-11-01 10:29:11.098133446 +0100
@@ -53,6 +53,15 @@
const char *get_conn_cfilter(void);
@@ -168,186 +168,3 @@ diff -urNad wireshark-0.99.2~/util.h wireshark-0.99.2/util.h
#ifdef __cplusplus
}
#endif /* __cplusplus */
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 04_drop-capabilities.dpatch by <fpeters@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Drop all capabilities but CAP_NET_RAW
-
-@DPATCH@
-diff -urNad --exclude=CVS --exclude=.svn ./config.h.in /tmp/dpep-work.rT2mW8/ethereal-0.10.12/config.h.in
---- ./config.h.in 2005-07-31 12:50:13.000000000 +0200
-+++ /tmp/dpep-work.rT2mW8/ethereal-0.10.12/config.h.in 2005-07-31 12:54:13.000000000 +0200
-@@ -55,6 +55,9 @@
- /* Define if krb5.h defines KEYTYPE_ARCFOUR_56 */
- #undef HAVE_KEYTYPE_ARCFOUR_56
-
-+/* Define if libcap is available to restrict process capabilities */
-+#undef HAVE_LIBCAP
-+
- /* Define to use libpcap library */
- #undef HAVE_LIBPCAP
-
-diff -urNad --exclude=CVS --exclude=.svn ./configure.in /tmp/dpep-work.rT2mW8/ethereal-0.10.12/configure.in
---- ./configure.in 2005-07-31 12:50:26.000000000 +0200
-+++ /tmp/dpep-work.rT2mW8/ethereal-0.10.12/configure.in 2005-07-31 12:54:13.000000000 +0200
-@@ -737,6 +737,47 @@
- fi
-
-
-+dnl libcap check
-+AC_MSG_CHECKING(whether to use libcap to improve security)
-+
-+AC_ARG_WITH(cap,
-+[ --with-cap[[=DIR]] use libcap (located in directory DIR, if supplied) to improve security. [[default=yes, if available]]],
-+[
-+ if test $withval = no
-+ then
-+ want_cap=no
-+ elif test $withval = yes
-+ then
-+ want_cap=yes
-+ else
-+ want_cap=yes
-+ cap_dir=$withval
-+ fi
-+],[
-+ #
-+ # Use libcap if it's present, otherwise don't.
-+ #
-+ want_cap=ifavailable
-+ cap_dir=
-+])
-+if test "x$want_cap" = "xno" ; then
-+ AC_MSG_RESULT(no)
-+ cap_message="no (disabled by explicit request)"
-+else
-+ AC_MSG_RESULT(yes)
-+ AC_CHECK_LIB(cap, cap_init, [
-+ AC_DEFINE(HAVE_LIBCAP, 1, [
-+ Define if libcap is available to restrict process capabilities
-+ ])
-+ LIBS="$LIBS -lcap"
-+ cap_message="yes"
-+ ], [
-+ AC_MSG_WARN([libcap check failed])
-+ cap_message="no (check failed)"
-+ ])
-+fi
-+
-+
- dnl Check if wireshark should be installed setuid
- AC_ARG_ENABLE(setuid-install,
- [ --enable-setuid-install install ethereal as setuid. DANGEROUS!!! [default=no]],enable_setuid_install=$enableval,enable_setuid_install=no)
-@@ -1322,3 +1363,4 @@
- echo " Use SSL crypto library : $ssl_message"
- echo " Use IPv6 name resolution : $enable_ipv6"
- echo " Use UCD SNMP/Net-SNMP library : $snmp_libs_message"
-+echo " Use cap library : $cap_message"
-diff -urNad --exclude=CVS --exclude=.svn ./gtk/main.c /tmp/dpep-work.rT2mW8/ethereal-0.10.12/gtk/main.c
---- ./gtk/main.c 2005-07-31 12:50:37.000000000 +0200
-+++ /tmp/dpep-work.rT2mW8/ethereal-0.10.12/gtk/main.c 2005-07-31 12:54:13.000000000 +0200
-@@ -1671,6 +1671,9 @@
- runtime_info_str = g_string_new("Running ");
- get_runtime_version_info(runtime_info_str);
-
-+#ifdef HAVE_LIBCAP
-+ dropexcesscapabilities();
-+#endif
-
- /*** "pre-scan" the command line parameters, if we have "console only" parameters ***/
- /* (e.g. don't start GTK+, if we only have to show the command line help) */
-diff -urNad --exclude=CVS --exclude=.svn ./tethereal.c /tmp/dpep-work.rT2mW8/ethereal-0.10.12/tethereal.c
---- ./tethereal.c 2005-07-31 12:49:37.000000000 +0200
-+++ /tmp/dpep-work.rT2mW8/ethereal-0.10.12/tethereal.c 2005-07-31 12:54:13.000000000 +0200
-@@ -663,6 +663,10 @@
- capture_opts_init(&capture_opts, NULL /* cfile */);
- #endif
-
-+#ifdef HAVE_LIBCAP
-+ dropexcesscapabilities();
-+#endif
-+
- set_timestamp_setting(TS_RELATIVE);
-
- /* Register all dissectors; we must do this before checking for the
-diff -urNad --exclude=CVS --exclude=.svn ./util.c /tmp/dpep-work.rT2mW8/ethereal-0.10.12/util.c
---- ./util.c 2005-07-31 12:49:42.000000000 +0200
-+++ /tmp/dpep-work.rT2mW8/ethereal-0.10.12/util.c 2005-07-31 12:56:35.000000000 +0200
-@@ -69,6 +69,10 @@
- #include <windows.h>
- #endif
-
-+#ifdef HAVE_LIBCAP
-+#include <sys/capability.h>
-+#endif
-+
- #include "util.h"
-
- /*
-@@ -311,3 +315,46 @@
- }
- return "";
- }
-+
-+
-+#ifdef HAVE_LIBCAP
-+void dropexcesscapabilities(void)
-+{
-+ cap_t cap_d;
-+ cap_value_t cap_values[] = {
-+ /* capabilities we need to keep */
-+ CAP_NET_RAW,
-+ CAP_DAC_READ_SEARCH
-+ };
-+ cap_flag_value_t current_cap;
-+
-+ cap_d = cap_get_proc();
-+ if (!cap_d) {
-+ g_warning("Could not get capabilities\n");
-+ return;
-+ }
-+
-+ cap_get_flag(cap_d, CAP_NET_RAW, CAP_EFFECTIVE, &current_cap);
-+ cap_free(&cap_d);
-+ if (current_cap == CAP_CLEAR) {
-+ return;
-+ }
-+
-+ cap_d = cap_init();
-+ if (!cap_d) {
-+ g_warning("Could not alloc cap struct\n");
-+ return;
-+ }
-+
-+ cap_clear(cap_d);
-+ cap_set_flag(cap_d, CAP_PERMITTED, 2, cap_values, CAP_SET);
-+ cap_set_flag(cap_d, CAP_EFFECTIVE, 2, cap_values, CAP_SET);
-+
-+ if (cap_set_proc(cap_d) != 0) {
-+ g_warning("Could not set capabilities: %s\n", strerror(errno));
-+ cap_free(&cap_d);
-+ return;
-+ }
-+ cap_free(&cap_d);
-+}
-+#endif /* HAVE_LIBCAP */
-diff -urNad --exclude=CVS --exclude=.svn ./util.h /tmp/dpep-work.rT2mW8/ethereal-0.10.12/util.h
---- ./util.h 2005-07-31 12:49:42.000000000 +0200
-+++ /tmp/dpep-work.rT2mW8/ethereal-0.10.12/util.h 2005-07-31 12:54:13.000000000 +0200
-@@ -43,6 +43,15 @@
- /* Create a capture filter for the connection */
- char *get_conn_cfilter(void);
-
-+#ifdef HAVE_LIBCAP
-+/*
-+ * Limit the potential impact of undiscovered security vulnerabilities by
-+ * dropping all capabilities except the sniffer capability we need to do our
-+ * job.
-+ */
-+void dropexcesscapabilities(void);
-+#endif /* HAVE_LIBCAP */
-+
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */