]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
agetty: cleanup plymouth usage [coverity scan]
authorKarel Zak <kzak@redhat.com>
Wed, 5 Aug 2015 09:45:57 +0000 (11:45 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 5 Aug 2015 09:48:01 +0000 (11:48 +0200)
* use macros for paths
* check open() return value

Signed-off-by: Karel Zak <kzak@redhat.com>
term-utils/agetty.c

index bf5a8d38e03f221fb7ed9d4206bd98290c132936..0237b79d9eb4de04549b6600ed36a42636390907 100644 (file)
@@ -137,6 +137,9 @@ static int inotify_fd = AGETTY_RELOAD_FDNONE;
 static int netlink_fd = AGETTY_RELOAD_FDNONE;
 #endif
 
+#define AGETTY_PLYMOUTH                "/usr/bin/plymouth"
+#define AGETTY_PLYMOUTH_FDFILE "/dev/null"
+
 /*
  * When multiple baud rates are specified on the command line, the first one
  * we will try is the first one specified.
@@ -2580,7 +2583,6 @@ err:
  */
 static int plymouth_command(const char* arg)
 {
-       const char *cmd = "/usr/bin/plymouth";
        static int has_plymouth = 1;
        pid_t pid;
 
@@ -2589,12 +2591,16 @@ static int plymouth_command(const char* arg)
 
        pid = fork();
        if (!pid) {
-               int fd = open("/dev/null", O_RDWR);
+               int fd = open(AGETTY_PLYMOUTH_FDFILE, O_RDWR);
+
+               if (fd < 0)
+                       err(EXIT_FAILURE,_("cannot open %s"),
+                                       AGETTY_PLYMOUTH_FDFILE);
                dup2(fd, 0);
                dup2(fd, 1);
                dup2(fd, 2);
                close(fd);
-               execl(cmd, cmd, arg, (char *) NULL);
+               execl(AGETTY_PLYMOUTH, AGETTY_PLYMOUTH, arg, (char *) NULL);
                exit(127);
        } else if (pid > 0) {
                int status;