aboutsummaryrefslogtreecommitdiffstats
path: root/src/securetty.c
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2012-10-28 20:16:00 +0000
committerColin Guthrie <colin@mageia.org>2012-10-28 20:16:00 +0000
commit5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f (patch)
treeec8a31bfe3ca67db6c5f31e1e34e59708fdfe557 /src/securetty.c
parent35326f41a29186a00331117c4419a904c6563c7c (diff)
parentbf95e22c4164b82112d043169495a71d1bfa0068 (diff)
downloadinitscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.gz
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.bz2
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.xz
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.zip
Merge tag 'initscripts-9.41-1' into mga-41
Tag as initscripts-9.41-1 Conflicts: .gitignore Makefile inittab po/xgettext_sh.py prefdm rc.d/init.d/functions rc.d/init.d/halt rc.d/init.d/killall rc.d/init.d/netfs rc.d/init.d/network rc.d/init.d/single rc.d/rc rc.d/rc.local rc.d/rc.sysinit service src/console_check.c src/console_init.c sysconfig.txt sysconfig/network-scripts/ifdown sysconfig/network-scripts/ifdown-eth sysconfig/network-scripts/ifup sysconfig/network-scripts/ifup-eth sysconfig/network-scripts/ifup-ippp sysconfig/network-scripts/network-functions systemd/system/fedora-wait-storage.service udev/rules.d/10-console.rules Merge Notes: 1. prefdm: We are keeping the current prefdm script which parses /etc/sysconfig/desktop to find the current preferred dm. We also keep the hunk in sysconfig.txt which relates to the afore mentioned file. Longer term, we should drop this and move to per-dm units. 2. sysconfig/network-scripts/ifup-ippp is still removed at our end... is there a replacement? 3. I used our /sbin/service as it varies quite a lot from fedora. I'd be tempted to drop our custom version in favour of upstream (s/libexec/lib/) 4. ifup/ifdown NM wrappers have been included - previously we just printed a "Device is manged by NM skipping.." message. CONFLICT (modify/delete): udev/rules.d/10-console.rules deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of udev/rules.d/10-console.rules left in tree. Auto-merging systemd/system/fedora-wait-storage.service CONFLICT (content): Merge conflict in systemd/system/fedora-wait-storage.service Auto-merging systemd/fedora-storage-init Auto-merging sysconfig/network-scripts/network-functions CONFLICT (content): Merge conflict in sysconfig/network-scripts/network-functions Removing sysconfig/network-scripts/net.hotplug Auto-merging sysconfig/network-scripts/ifup-sit Auto-merging sysconfig/network-scripts/ifup-post Auto-merging sysconfig/network-scripts/ifup-plusb CONFLICT (modify/delete): sysconfig/network-scripts/ifup-ippp deleted in HEAD and modified in initscripts-9.41-1. Version initscripts-9.41-1 of sysconfig/network-scripts/ifup-ippp left in tree. Auto-merging sysconfig/network-scripts/ifup-eth CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifup-eth Auto-merging sysconfig/network-scripts/ifup CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifup Auto-merging sysconfig/network-scripts/ifdown-sit Auto-merging sysconfig/network-scripts/ifdown-post Auto-merging sysconfig/network-scripts/ifdown-eth CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifdown-eth Auto-merging sysconfig/network-scripts/ifdown CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifdown Auto-merging sysconfig.txt CONFLICT (content): Merge conflict in sysconfig.txt Removing src/testdinit Removing src/testd.c Removing src/securetty.c Removing src/securetty.8 Removing src/getkey.c Removing src/getkey.1 Removing src/fstab-decode.c Removing src/fstab-decode.8 CONFLICT (modify/delete): src/console_init.c deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of src/console_init.c left in tree. CONFLICT (modify/delete): src/console_check.c deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of src/console_check.c left in tree. Auto-merging service CONFLICT (content): Merge conflict in service CONFLICT (modify/delete): rc.d/rc.sysinit deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc.sysinit left in tree. CONFLICT (modify/delete): rc.d/rc.local deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc.local left in tree. CONFLICT (modify/delete): rc.d/rc deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc left in tree. CONFLICT (modify/delete): rc.d/init.d/single deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/single left in tree. Auto-merging rc.d/init.d/network CONFLICT (content): Merge conflict in rc.d/init.d/network CONFLICT (modify/delete): rc.d/init.d/netfs deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/netfs left in tree. Auto-merging rc.d/init.d/netconsole CONFLICT (modify/delete): rc.d/init.d/killall deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/killall left in tree. CONFLICT (modify/delete): rc.d/init.d/halt deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/halt left in tree. Auto-merging rc.d/init.d/functions CONFLICT (content): Merge conflict in rc.d/init.d/functions CONFLICT (modify/delete): prefdm deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of prefdm left in tree. Auto-merging ppp/ip-up.ipv6to4 CONFLICT (modify/delete): po/xgettext_sh.py deleted in HEAD and modified in initscripts-9.41-1. Version initscripts-9.41-1 of po/xgettext_sh.py left in tree. Removing inittab.upstart Removing inittab.systemd Removing inittab.s390 Auto-merging inittab CONFLICT (content): Merge conflict in inittab Removing init/tty.conf Removing init/start-ttys.conf Removing init/splash-manager.conf Removing init/serial.conf Removing init/rcS.conf Removing init/rcS-sulogin.conf Removing init/rc.conf Removing init/quit-plymouth.conf Removing init/prefdm.conf Removing init/plymouth-shutdown.conf Removing init/control-alt-delete.conf Removing crypttab.5 Removing README-init Removing NetworkManager/dispatcher.d/05-netfs Auto-merging Makefile CONFLICT (content): Merge conflict in Makefile Auto-merging .gitignore CONFLICT (content): Merge conflict in .gitignore Automatic merge failed; fix conflicts and then commit the result.
Diffstat (limited to 'src/securetty.c')
-rw-r--r--src/securetty.c111
1 files changed, 0 insertions, 111 deletions
diff --git a/src/securetty.c b/src/securetty.c
deleted file mode 100644
index 9ec8e7ef..00000000
--- a/src/securetty.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2008 Red Hat, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2,
- * as published by the Free Software Foundation.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- *
- */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-void alarm_handler(int num) {
- return;
-}
-
-int open_and_lock_securetty() {
- int fd;
- struct flock lock;
- struct sigaction act, oldact;
-
- lock.l_type = F_WRLCK;
- lock.l_whence = SEEK_SET;
- lock.l_start = 0;
- lock.l_len = 0;
-
- fd = open("/etc/securetty", O_RDWR);
- if (fd == -1) {
- syslog(LOG_ERR, "Couldn't open /etc/securetty: %s",strerror(errno));
- return -1;
- }
- act.sa_handler = alarm_handler;
- act.sa_flags = 0;
- sigaction(SIGALRM, &act, &oldact);
- alarm(2);
- while (fcntl(fd, F_SETLKW, &lock) == -1) {
- if (errno == EINTR) {
- syslog(LOG_ERR, "Couldn't lock /etc/securetty: Timeout exceeded");
- } else {
- syslog(LOG_ERR, "Couldn't lock /etc/securetty: %s",strerror(errno));
- }
- return -1;
- }
- alarm(0);
- sigaction(SIGALRM, &oldact, NULL);
- return fd;
-}
-
-int rewrite_securetty(char *terminal) {
- int fd;
- char *buf, *pos;
- struct stat sbuf;
-
- fd = open_and_lock_securetty();
- if (fd == -1)
- return 1;
- if (fstat(fd, &sbuf) == -1) {
- close(fd);
- syslog(LOG_ERR, "Couldn't stat /etc/securetty: %s",strerror(errno));
- return 1;
- }
- buf = malloc(sbuf.st_size + 1);
- if (read(fd, buf, sbuf.st_size) != sbuf.st_size) {
- close(fd);
- syslog(LOG_ERR, "Couldn't read /etc/securetty: %s",strerror(errno));
- return 1;
- }
- if (!strncmp(buf,terminal,strlen(terminal)) && buf[strlen(terminal)] == '\n')
- goto out_ok;
- if ((pos = strstr(buf, terminal))) {
- if (pos[strlen(terminal)] == '\n' && *(pos-1) == '\n')
- goto out_ok;
- }
- if (lseek(fd, 0, SEEK_END) == -1) {
- close(fd);
- syslog(LOG_ERR, "Couldn't seek to end of /etc/securetty: %s",strerror(errno));
- return 1;
- }
- write(fd, terminal, strlen(terminal));
- write(fd, "\n", 1);
-out_ok:
- close(fd);
- return 0;
-}
-
-int main(int argc, char **argv) {
- if (argc < 2 ) {
- fprintf(stderr, "Usage: securetty <device>\n");
- exit(1);
- }
- openlog("securetty", LOG_CONS, LOG_DAEMON);
- return rewrite_securetty(argv[1]);
-}