]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blobdiff - e2fsck/sigcatcher.c
e2fsck: do not allow initialized blocks pass i_size
[thirdparty/e2fsprogs.git] / e2fsck / sigcatcher.c
index e3925f1540ec33e9d6c4563edfb18147129c3cfe..a9d3b7f2ce79e2d890a9a0dc27e3c063cff8c5d9 100644 (file)
@@ -331,10 +331,9 @@ static const char *lookup_table_fallback(int num, struct str_table *table)
        return buf;
 }
 
-static void die_signal_handler(int signum, siginfo_t *siginfo, void *context)
+static void die_signal_handler(int signum, siginfo_t *siginfo,
+                              void *context EXT2FS_ATTR((unused)))
 {
-       void *stack_syms[32];
-       int frames;
        const char *cp;
 
        fprintf(stderr, "Signal (%d) %s ", signum,
@@ -372,9 +371,14 @@ static void die_signal_handler(int signum, siginfo_t *siginfo, void *context)
               fprintf(stderr, "fault addr=%p", siginfo->si_addr);
        fprintf(stderr, "\n");
 
-#ifdef HAVE_BACKTRACE
-       frames = backtrace(stack_syms, 32);
-       backtrace_symbols_fd(stack_syms, frames, 2);
+#if defined(HAVE_BACKTRACE) && !defined(DISABLE_BACKTRACE)
+       {
+              void *stack_syms[32];
+              int frames;
+
+              frames = backtrace(stack_syms, 32);
+              backtrace_symbols_fd(stack_syms, frames, 2);
+       }
 #endif
        exit(FSCK_ERROR);
 }