summaryrefslogtreecommitdiff
path: root/packages/net-tools/files/net-tools-1.60-selinux.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/net-tools/files/net-tools-1.60-selinux.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/net-tools/files/net-tools-1.60-selinux.patch')
-rw-r--r--packages/net-tools/files/net-tools-1.60-selinux.patch205
1 files changed, 0 insertions, 205 deletions
diff --git a/packages/net-tools/files/net-tools-1.60-selinux.patch b/packages/net-tools/files/net-tools-1.60-selinux.patch
deleted file mode 100644
index d0266696d0..0000000000
--- a/packages/net-tools/files/net-tools-1.60-selinux.patch
+++ /dev/null
@@ -1,205 +0,0 @@
---- net-tools-1.60/Makefile~ 2005-12-24 06:56:57.000000000 -0500
-+++ net-tools-1.60/Makefile 2005-12-29 16:54:06.000000000 -0500
-@@ -113,6 +113,12 @@
-
- NET_LIB = $(NET_LIB_PATH)/lib$(NET_LIB_NAME).a
-
-+ifeq ($(HAVE_SELINUX),1)
-+LDFLAGS += -lselinux
-+CFLAGS += -DHAVE_SELINUX
-+else
-+endif
-+
- CFLAGS += $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH)
- LDFLAGS += $(LOPTS) -L$(NET_LIB_PATH)
-
---- net-tools-1.60/netstat.c~ 2005-12-24 06:56:57.000000000 -0500
-+++ net-tools-1.60/netstat.c 2005-12-29 16:54:07.000000000 -0500
-@@ -86,6 +86,11 @@
- #include <net/if.h>
- #include <dirent.h>
-
-+#if HAVE_SELINUX
-+#include <selinux/selinux.h>
-+#else
-+#define security_context_t char*
-+#endif
- #include "net-support.h"
- #include "pathnames.h"
- #include "version.h"
-@@ -96,6 +101,7 @@
- #include "util.h"
-
- #define PROGNAME_WIDTH 20
-+#define SELINUX_WIDTH 50
-
- #if !defined(s6_addr32) && defined(in6a_words)
- #define s6_addr32 in6a_words /* libinet6 */
-@@ -150,6 +156,7 @@
- int flag_prg = 0;
- int flag_arg = 0;
- int flag_ver = 0;
-+int flag_selinux = 0;
-
- FILE *procinfo;
-
-@@ -213,12 +220,17 @@
- #define PROGNAME_WIDTH1(s) PROGNAME_WIDTH2(s)
- #define PROGNAME_WIDTH2(s) #s
-
-+#define SELINUX_WIDTHs SELINUX_WIDTH1(SELINUX_WIDTH)
-+#define SELINUX_WIDTH1(s) SELINUX_WIDTH2(s)
-+#define SELINUX_WIDTH2(s) #s
-+
- #define PRG_HASH_SIZE 211
-
- static struct prg_node {
- struct prg_node *next;
- int inode;
- char name[PROGNAME_WIDTH];
-+ char scon[SELINUX_WIDTH];
- } *prg_hash[PRG_HASH_SIZE];
-
- static char prg_cache_loaded = 0;
-@@ -226,9 +238,12 @@
- #define PRG_HASHIT(x) ((x) % PRG_HASH_SIZE)
-
- #define PROGNAME_BANNER "PID/Program name"
-+#define SELINUX_BANNER "Security Context"
-
- #define print_progname_banner() do { if (flag_prg) printf("%-" PROGNAME_WIDTHs "s"," " PROGNAME_BANNER); } while (0)
-
-+#define print_selinux_banner() do { if (flag_selinux) printf("%-" SELINUX_WIDTHs "s"," " SELINUX_BANNER); } while (0)
-+
- #define PRG_LOCAL_ADDRESS "local_address"
- #define PRG_INODE "inode"
- #define PRG_SOCKET_PFX "socket:["
-@@ -250,7 +265,7 @@
- /* NOT working as of glibc-2.0.7: */
- #undef DIRENT_HAVE_D_TYPE_WORKS
-
--static void prg_cache_add(int inode, char *name)
-+static void prg_cache_add(int inode, char *name, char *scon)
- {
- unsigned hi = PRG_HASHIT(inode);
- struct prg_node **pnp,*pn;
-@@ -271,6 +286,14 @@
- if (strlen(name)>sizeof(pn->name)-1)
- name[sizeof(pn->name)-1]='\0';
- strcpy(pn->name,name);
-+
-+ {
-+ int len=(strlen(scon)-sizeof(pn->scon))+1;
-+ if (len > 0)
-+ strcpy(pn->scon,&scon[len+1]);
-+ else
-+ strcpy(pn->scon,scon);
-+ }
- }
-
- static const char *prg_cache_get(unsigned long inode)
-@@ -283,6 +306,16 @@
- return("-");
- }
-
-+static const char *prg_cache_get_con(unsigned long inode)
-+{
-+ unsigned hi=PRG_HASHIT(inode);
-+ struct prg_node *pn;
-+
-+ for (pn=prg_hash[hi];pn;pn=pn->next)
-+ if (pn->inode==inode) return(pn->scon);
-+ return("-");
-+}
-+
- static void prg_cache_clear(void)
- {
- struct prg_node **pnp,*pn;
-@@ -348,6 +381,7 @@
- const char *cs,*cmdlp;
- DIR *dirproc=NULL,*dirfd=NULL;
- struct dirent *direproc,*direfd;
-+ security_context_t scon=NULL;
-
- if (prg_cache_loaded || !flag_prg) return;
- prg_cache_loaded=1;
-@@ -415,7 +449,15 @@
- }
-
- snprintf(finbuf, sizeof(finbuf), "%s/%s", direproc->d_name, cmdlp);
-- prg_cache_add(inode, finbuf);
-+#if HAVE_SELINUX
-+ if (getpidcon(atoi(direproc->d_name), &scon) == -1) {
-+ scon=strdup("-");
-+ }
-+ prg_cache_add(inode, finbuf, scon);
-+ freecon(scon);
-+#else
-+ prg_cache_add(inode, finbuf, "-");
-+#endif
- }
- closedir(dirfd);
- dirfd = NULL;
-@@ -1385,6 +1428,8 @@
- printf("- ");
- if (flag_prg)
- printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-"));
-+ if (flag_selinux)
-+ printf("%-" SELINUX_WIDTHs "s",(has & HAS_INODE?prg_cache_get_con(inode):"-"));
- puts(path);
- }
-
-@@ -1403,6 +1448,7 @@
-
- printf(_("\nProto RefCnt Flags Type State I-Node"));
- print_progname_banner();
-+ print_selinux_banner();
- printf(_(" Path\n")); /* xxx */
-
- {
-@@ -1682,6 +1728,7 @@
- fprintf(stderr, _(" -o, --timers display timers\n"));
- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n"));
- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
-+ fprintf(stderr, _(" -Z, --context display SELinux security context for sockets\n\n"));
-
- fprintf(stderr, _(" <Iface>: Name of interface to monitor/list.\n"));
- fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n"));
-@@ -1729,6 +1776,7 @@
- {"cache", 0, 0, 'C'},
- {"fib", 0, 0, 'F'},
- {"groups", 0, 0, 'g'},
-+ {"context", 0, 0, 'Z'},
- {NULL, 0, 0, 0}
- };
-
-@@ -1741,7 +1789,7 @@
-
- afname[0] = '\0';
-
-- while ((i = getopt_long(argc, argv, "MCFA:acdegphiI::nNorstuVv?wxl", longopts, &lop)) != EOF)
-+ while ((i = getopt_long(argc, argv, "MCFA:acdegphiI::nNorstuVv?wxlZ", longopts, &lop)) != EOF)
- switch (i) {
- case -1:
- break;
-@@ -1838,6 +1886,20 @@
- if (aftrans_opt("unix"))
- exit(1);
- break;
-+ case 'Z':
-+#if HAVE_SELINUX
-+ if (is_selinux_enabled() <= 0) {
-+ fprintf(stderr, _("SELinux is not enabled on this machine.\n"));
-+ exit(1);
-+ }
-+ flag_prg++;
-+ flag_selinux++;
-+#else
-+ fprintf(stderr, _("SELinux is not enabled for this application.\n"));
-+ exit(1);
-+#endif
-+
-+ break;
- case '?':
- case 'h':
- usage();