diff options
Diffstat (limited to 'term-utils')
-rw-r--r-- | term-utils/agetty.c | 4 | ||||
-rw-r--r-- | term-utils/ttymsg.c | 8 | ||||
-rw-r--r-- | term-utils/wall.c | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/term-utils/agetty.c b/term-utils/agetty.c index d88cdc1c0..55a00e125 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -1001,8 +1001,8 @@ static void open_tty(char *tty, struct termios *tp, struct options *op) if ((gr = getgrnam("tty"))) gid = gr->gr_gid; - if (((len = snprintf(buf, sizeof(buf), "/dev/%s", tty)) >= - (int)sizeof(buf)) || (len < 0)) + len = snprintf(buf, sizeof(buf), "/dev/%s", tty); + if (len < 0 || (size_t)len >= sizeof(buf)) log_err(_("/dev/%s: cannot open as standard input: %m"), tty); /* Open the tty as standard input. */ diff --git a/term-utils/ttymsg.c b/term-utils/ttymsg.c index 18a723f86..2aab69f10 100644 --- a/term-utils/ttymsg.c +++ b/term-utils/ttymsg.c @@ -90,7 +90,7 @@ ttymsg(struct iovec *iov, size_t iovcnt, char *line, int tmout) { also wrong since people use /dev/pts/xxx. */ len = snprintf(device, sizeof(device), "%s%s", _PATH_DEV, line); - if (len < 0 || len + 1 > (ssize_t) sizeof(device)) { + if (len < 0 || (size_t)len >= sizeof(device)) { snprintf(errbuf, sizeof(errbuf), _("excessively long line arg")); return errbuf; } @@ -104,7 +104,7 @@ ttymsg(struct iovec *iov, size_t iovcnt, char *line, int tmout) { return NULL; len = snprintf(errbuf, sizeof(errbuf), "%s: %m", device); - if (len < 0 || len + 1 > (ssize_t) sizeof(errbuf)) + if (len < 0 || (size_t)len >= sizeof(errbuf)) snprintf(errbuf, sizeof(errbuf), _("open failed")); return errbuf; } @@ -145,7 +145,7 @@ ttymsg(struct iovec *iov, size_t iovcnt, char *line, int tmout) { cpid = fork(); if (cpid < 0) { len = snprintf(errbuf, sizeof(errbuf), _("fork: %m")); - if (len < 0 || len + 1 > (ssize_t) sizeof(errbuf)) + if (len < 0 || (size_t)len >= sizeof(errbuf)) snprintf(errbuf, sizeof(errbuf), _("cannot fork")); close(fd); return errbuf; @@ -177,7 +177,7 @@ ttymsg(struct iovec *iov, size_t iovcnt, char *line, int tmout) { _exit(EXIT_FAILURE); len = snprintf(errbuf, sizeof(errbuf), "%s: %m", device); - if (len < 0 || len + 1 > (ssize_t) sizeof(errbuf)) + if (len < 0 || (size_t)len >= sizeof(errbuf)) snprintf(errbuf, sizeof(errbuf), _("%s: BAD ERROR, message is " "far too long"), device); diff --git a/term-utils/wall.c b/term-utils/wall.c index 7d0dfe772..1253d32cd 100644 --- a/term-utils/wall.c +++ b/term-utils/wall.c @@ -217,8 +217,8 @@ static void buf_printf(struct buffer *bs, const char *fmt, ...) rc = vsnprintf(bs->data + bs->used, limit, fmt, ap); va_end(ap); - if (rc > 0 && (size_t) rc + 1 > limit) { /* not enoght, enlarge */ - buf_enlarge(bs, rc + 1); + if (rc >= 0 && (size_t) rc >= limit) { /* not enoght, enlarge */ + buf_enlarge(bs, (size_t)rc + 1); limit = bs->sz - bs->used; va_start(ap, fmt); rc = vsnprintf(bs->data + bs->used, limit, fmt, ap);; |