+++ /dev/null
-# Makefile for udev_selinux
-#
-# Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-
-# Set the following to control the use of syslog
-# Set it to `false' to remove all logging
-USE_LOG = true
-
-# Set the following to `true' to log the debug
-# and make a unstripped, unoptimized binary.
-# Leave this set to `false' for production use.
-DEBUG = false
-
-PROG = udev_selinux
-
-DESTDIR =
-
-# override this to make udev look in a different location for it's config files
-prefix =
-exec_prefix = ${prefix}
-etcdir = ${prefix}/etc
-sbindir = ${exec_prefix}/sbin
-usrbindir = ${exec_prefix}/usr/bin
-usrsbindir = ${exec_prefix}/usr/sbin
-mandir = ${prefix}/usr/share/man
-devddir = ${etcdir}/dev.d/default
-hotplugdir = ${etcdir}/hotplug.d/default
-configdir = ${etcdir}/udev/
-initdir = ${etcdir}/init.d/
-srcdir = .
-
-INSTALL = /usr/bin/install -c
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_SCRIPT = ${INSTALL_PROGRAM}
-
-all: $(PROG)
-
-OBJS = udev_selinux.o
-
-override CFLAGS += -DUSE_SELINUX
-override LIB_OBJS += -lselinux
-
-$(PROG): $(OBJS)
- $(LD) $(LDFLAGS) -o $(PROG) $(CRT0) $(OBJS) ../../udev_lib.o $(LIB_OBJS) $(ARCH_LIB_OBJS)
-
-clean:
- rm -f $(PROG) $(OBJS)
-
-spotless: clean
-
-install: all
- $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG)
- - ln -s -f $(DESTDIR)$(sbindir)/$(PROG) $(DESTDIR)$(devddir)/$(PROG).dev
-
-uninstall:
- - rm $(DESTDIR)$(devddir)/$(PROG).dev
- - rm $(DESTDIR)$(sbindir)/$(PROG)
-
+++ /dev/null
-/*
- * udev_selinux.c
- *
- * Copyright (C) 2004 Daniel J Walsh <dwalsh@redhat.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <errno.h>
-#include <selinux/selinux.h>
-
-#include "../../udev_lib.h"
-#include "../../logging.h"
-
-#ifdef LOG
-unsigned char logname[LOGNAME_SIZE];
-void log_message(int level, const char *format, ...)
-{
- va_list args;
-
- va_start(args, format);
- vsyslog(level, format, args);
- va_end(args);
-}
-#endif
-
-static void selinux_add_node(char *filename)
-{
- int retval;
-
- if (is_selinux_enabled() > 0) {
- security_context_t scontext;
- retval = matchpathcon(filename, 0, &scontext);
- if (retval < 0) {
- dbg("matchpathcon(%s) failed\n", filename);
- } else {
- retval = setfilecon(filename,scontext);
- if (retval < 0)
- dbg("setfiles %s failed with error '%s'",
- filename, strerror(errno));
- free(scontext);
- }
- }
-}
-
-int main(int argc, char *argv[], char *envp[])
-{
- char *action;
- char *devname;
- int retval = 0;
-
- init_logging("udev_selinux");
-
- action = get_action();
- if (!action) {
- dbg("no action?");
- goto exit;
- }
- devname = get_devname();
- if (!devname) {
- dbg("no devname?");
- goto exit;
- }
-
- if (strcmp(action, "add") == 0)
- selinux_add_node(devname);
-
-exit:
- return retval;
-}