[PATCH 04/12] logger: fail when io vector number exceeds maximum

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Earlier version silently failed without logging anything.

$ logger --journald=/etc/services ; echo $?
1

Signed-off-by: Sami Kerola <kerolasa@xxxxxx>
---
 misc-utils/logger.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/misc-utils/logger.c b/misc-utils/logger.c
index f3bdc90..fccba38 100644
--- a/misc-utils/logger.c
+++ b/misc-utils/logger.c
@@ -37,6 +37,7 @@
  */
 
 #include <errno.h>
+#include <limits.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <time.h>
@@ -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)
-- 
1.9.2

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux