From 9a88b5b110a30669250feb1e83bd2be532be50db Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 17 Jun 2021 19:55:16 +0000 Subject: [PATCH] audio: Ignore SIGPIPE in the default audio HAL wrapper It could happen that a service process receives a SIGPIPE while providing a dump due unexpected pipe closure on the other side. This should not lead to a service termination. Ignoring SIGPIPE is a normal practice for system services. Bug: 191123848 Test: adb shell kill -s 13 Change-Id: I9c1d170b76aa27203206e8fd2ce2fc3f5431baac --- audio/common/all-versions/default/service/service.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/audio/common/all-versions/default/service/service.cpp b/audio/common/all-versions/default/service/service.cpp index bbc14adc6c..898c22db6a 100644 --- a/audio/common/all-versions/default/service/service.cpp +++ b/audio/common/all-versions/default/service/service.cpp @@ -16,6 +16,7 @@ #define LOG_TAG "audiohalservice" +#include #include #include @@ -45,6 +46,8 @@ static bool registerPassthroughServiceImplementations(Iter first, Iter last) { } int main(int /* argc */, char* /* argv */ []) { + signal(SIGPIPE, SIG_IGN); + ::android::ProcessState::initWithDriver("/dev/vndbinder"); // start a threadpool for vndbinder interactions ::android::ProcessState::self()->startThreadPool();