From 7313e3d9d01c707ca1308fa9b83b6600e270daa3 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Sat, 12 Dec 2015 16:56:57 +0100 Subject: [PATCH] In case of the "Path too long" message prints the stacktrace --- Makefile.am | 2 ++ cmdline/mingw.c | 1 + cmdline/support.c | 10 +++++----- cmdline/unix.c | 1 + 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index 20666a56..ef89cc2e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -90,11 +90,13 @@ noinst_HEADERS = \ mktest_SOURCES = \ cmdline/mktest.c \ cmdline/mingw.c \ + cmdline/unix.c \ cmdline/support.c mkstream_SOURCES = \ cmdline/mkstream.c \ cmdline/mingw.c \ + cmdline/unix.c \ cmdline/support.c \ cmdline/util.c \ cmdline/stream.c \ diff --git a/cmdline/mingw.c b/cmdline/mingw.c index 83b26293..ba896fee 100644 --- a/cmdline/mingw.c +++ b/cmdline/mingw.c @@ -255,6 +255,7 @@ void os_abort(void) printf(", gcc " __VERSION__); #endif printf(", %d-bit", (int)sizeof(void *) * 8); + printf(", PATH_MAX=%d", PATH_MAX); printf("\n"); /* get stackstrace, but without symbols */ diff --git a/cmdline/support.c b/cmdline/support.c index 3613a422..169eb0fe 100644 --- a/cmdline/support.c +++ b/cmdline/support.c @@ -356,7 +356,7 @@ void pathcpy(char* dst, size_t size, const char* src) if (len + 1 > size) { /* LCOV_EXCL_START */ log_fatal("Path too long\n"); - exit(EXIT_FAILURE); + os_abort(); /* LCOV_EXCL_STOP */ } @@ -371,7 +371,7 @@ void pathcat(char* dst, size_t size, const char* src) if (dst_len + src_len + 1 > size) { /* LCOV_EXCL_START */ log_fatal("Path too long\n"); - exit(EXIT_FAILURE); + os_abort(); /* LCOV_EXCL_STOP */ } @@ -385,7 +385,7 @@ void pathcatc(char* dst, size_t size, char c) if (dst_len + 2 > size) { /* LCOV_EXCL_START */ log_fatal("Path too long\n"); - exit(EXIT_FAILURE); + os_abort(); /* LCOV_EXCL_STOP */ } @@ -433,7 +433,7 @@ void pathprint(char* dst, size_t size, const char* format, ...) if (len >= size) { /* LCOV_EXCL_START */ log_fatal("Path too long\n"); - exit(EXIT_FAILURE); + os_abort(); /* LCOV_EXCL_STOP */ } } @@ -446,7 +446,7 @@ void pathslash(char* dst, size_t size) if (len + 2 >= size) { /* LCOV_EXCL_START */ log_fatal("Path too long\n"); - exit(EXIT_FAILURE); + os_abort(); /* LCOV_EXCL_STOP */ } diff --git a/cmdline/unix.c b/cmdline/unix.c index 8611a112..29c23ecf 100644 --- a/cmdline/unix.c +++ b/cmdline/unix.c @@ -1103,6 +1103,7 @@ void os_abort(void) printf(", gcc " __VERSION__); #endif printf(", %d-bit", (int)sizeof(void *) * 8); + printf(", PATH_MAX=%d", PATH_MAX); printf("\n"); size = backtrace(stack, 32);