diff --git restorecond-2.7/Makefile restorecond-2.7/Makefile index ada94ae..25be18d 100644 --- restorecond-2.7/Makefile +++ restorecond-2.7/Makefile @@ -1,13 +1,12 @@ PKG_CONFIG ?= pkg-config # Installation directories. -PREFIX ?= $(DESTDIR)/usr +PREFIX ?= /usr SBINDIR ?= $(PREFIX)/sbin -LIBDIR ?= $(PREFIX)/lib MANDIR = $(PREFIX)/share/man -AUTOSTARTDIR = $(DESTDIR)/etc/xdg/autostart -DBUSSERVICEDIR = $(DESTDIR)/usr/share/dbus-1/services -SYSTEMDDIR ?= $(DESTDIR)/usr/lib/systemd +AUTOSTARTDIR = /etc/xdg/autostart +DBUSSERVICEDIR = $(PREFIX)/share/dbus-1/services +SYSTEMDDIR ?= $(PREFIX)/lib/systemd autostart_DATA = sealertauto.desktop INITDIR ?= $(DESTDIR)/etc/rc.d/init.d @@ -39,23 +38,23 @@ restorecond: restore.o restorecond.o utmpwatcher.o stringslist.o user.o watch.o $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) install: all - [ -d $(MANDIR)/man8 ] || mkdir -p $(MANDIR)/man8 - -mkdir -p $(SBINDIR) - install -m 755 restorecond $(SBINDIR) - install -m 644 restorecond.8 $(MANDIR)/man8 + [ -d $(DESTDIR)$(MANDIR)/man8 ] || mkdir -p $(DESTDIR)$(MANDIR)/man8 + -mkdir -p $(DESTDIR)$(SBINDIR) + install -m 755 restorecond $(DESTDIR)$(SBINDIR) + install -m 644 restorecond.8 $(DESTDIR)$(MANDIR)/man8 -mkdir -p $(INITDIR) install -m 755 restorecond.init $(INITDIR)/restorecond -mkdir -p $(SELINUXDIR) install -m 644 restorecond.conf $(SELINUXDIR)/restorecond.conf install -m 644 restorecond_user.conf $(SELINUXDIR)/restorecond_user.conf - -mkdir -p $(AUTOSTARTDIR) - install -m 644 restorecond.desktop $(AUTOSTARTDIR)/restorecond.desktop - -mkdir -p $(DBUSSERVICEDIR) - install -m 600 org.selinux.Restorecond.service $(DBUSSERVICEDIR)/org.selinux.Restorecond.service - -mkdir -p $(SYSTEMDDIR)/system - install -m 644 restorecond.service $(SYSTEMDDIR)/system/ + -mkdir -p $(DESTDIR)$(AUTOSTARTDIR) + install -m 644 restorecond.desktop $(DESTDIR)$(AUTOSTARTDIR)/restorecond.desktop + -mkdir -p $(DESTDIR)$(DBUSSERVICEDIR) + install -m 600 org.selinux.Restorecond.service $(DESTDIR)$(DBUSSERVICEDIR)/org.selinux.Restorecond.service + -mkdir -p $(DESTDIR)$(SYSTEMDDIR)/system + install -m 644 restorecond.service $(DESTDIR)$(SYSTEMDDIR)/system/ relabel: install - /sbin/restorecon $(SBINDIR)/restorecond + /sbin/restorecon $(DESTDIR)$(SBINDIR)/restorecond clean: -rm -f restorecond *.o *~ diff --git restorecond-2.7/restorecond.c restorecond-2.7/restorecond.c index f379db1..6fbbd35 100644 --- restorecond-2.7/restorecond.c +++ restorecond-2.7/restorecond.c @@ -103,7 +103,10 @@ static int write_pid_file(void) pidfile = 0; return 1; } - (void)write(pidfd, val, (unsigned int)len); + if (write(pidfd, val, (unsigned int)len) != len) { + syslog(LOG_ERR, "Unable to write to pidfile (%s)", strerror(errno)); + return 1; + } close(pidfd); return 0; } @@ -204,8 +207,10 @@ int main(int argc, char **argv) watch_file = server_watch_file; read_config(master_fd, watch_file); - if (!debug_mode) - daemon(0, 0); + if (!debug_mode) { + if (daemon(0, 0) < 0) + exitApp("daemon"); + } write_pid_file();