Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3938310 authored by Elliott Hughes's avatar Elliott Hughes
Browse files

bionic no longer sends SIGPIPE to debuggerd.

Static binaries don't get the signal handler installed (that's done by the
dynamic linker) so we don't need to worry about seeing SIGPIPE crashes from
old binaries.

Bug: http://b/20659371
Change-Id: I3b5566634fadd3e822262561188d29814bccd1fd
parent dcf89091
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -157,12 +157,6 @@ static int do_action(const char* arg)
    } else if (!strcmp(arg, "SIGFPE")) {
        raise(SIGFPE);
        return EXIT_SUCCESS;
    } else if (!strcmp(arg, "SIGPIPE")) {
        int pipe_fds[2];
        pipe(pipe_fds);
        close(pipe_fds[0]);
        write(pipe_fds[1], "oops", 4);
        return EXIT_SUCCESS;
    } else if (!strcmp(arg, "SIGTRAP")) {
        raise(SIGTRAP);
        return EXIT_SUCCESS;
@@ -189,7 +183,6 @@ static int do_action(const char* arg)
    fprintf(stderr, "  LOG_ALWAYS_FATAL      call LOG_ALWAYS_FATAL\n");
    fprintf(stderr, "  LOG_ALWAYS_FATAL_IF   call LOG_ALWAYS_FATAL\n");
    fprintf(stderr, "  SIGFPE                cause a SIGFPE\n");
    fprintf(stderr, "  SIGPIPE               cause a SIGPIPE\n");
    fprintf(stderr, "  SIGSEGV               cause a SIGSEGV at address 0x0 (synonym: crash)\n");
    fprintf(stderr, "  SIGSEGV-non-null      cause a SIGSEGV at a non-zero address\n");
    fprintf(stderr, "  SIGSEGV-unmapped      mmap/munmap a region of memory and then attempt to access it\n");
+0 −1
Original line number Diff line number Diff line
@@ -408,7 +408,6 @@ static void handle_request(int fd) {
            case SIGBUS:
            case SIGFPE:
            case SIGILL:
            case SIGPIPE:
            case SIGSEGV:
#ifdef SIGSTKFLT
            case SIGSTKFLT:
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ class TombstoneTest : public ::testing::Test {
    resetLogs();
    elf_set_fake_build_id("");
    siginfo_t si;
    si.si_signo = SIGPIPE;
    si.si_signo = SIGABRT;
    ptrace_set_fake_getsiginfo(si);
  }

+0 −1
Original line number Diff line number Diff line
@@ -81,7 +81,6 @@ static const char* get_signame(int sig) {
    case SIGBUS: return "SIGBUS";
    case SIGFPE: return "SIGFPE";
    case SIGILL: return "SIGILL";
    case SIGPIPE: return "SIGPIPE";
    case SIGSEGV: return "SIGSEGV";
#if defined(SIGSTKFLT)
    case SIGSTKFLT: return "SIGSTKFLT";