From: Sami Kerola Date: Sun, 11 May 2014 19:26:41 +0000 (+0100) Subject: logger: fail when io vector number exceeds maximum X-Git-Tag: v2.25-rc1~187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=047e2888a318ccad5f636edb6692cbdede80d14d;p=thirdparty%2Futil-linux.git logger: fail when io vector number exceeds maximum Earlier version silently failed without logging anything. $ logger --journald=/etc/services ; echo $? 1 Signed-off-by: Sami Kerola --- diff --git a/misc-utils/logger.c b/misc-utils/logger.c index f3bdc903ba..fccba3880c 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -37,6 +37,7 @@ */ #include +#include #include #include #include @@ -231,6 +232,8 @@ static int journald_entry(FILE *fp) } if (lines == vectors) { vectors *= 2; + if (IOV_MAX < vectors) + errx(EXIT_FAILURE, _("maximum input lines (%d) exceeded"), IOV_MAX); iovec = xrealloc(iovec, vectors * sizeof(struct iovec)); } iovec[lines].iov_base = buf; @@ -415,7 +418,9 @@ int main(int argc, char **argv) int ret = journald_entry(jfd); if (stdin != jfd) fclose(jfd); - return ret ? EXIT_FAILURE : EXIT_SUCCESS; + if (ret) + errx(EXIT_FAILURE, "journald entry could not be wrote"); + return EXIT_SUCCESS; } #endif if (server)