From 5310db82b012131242f723742e02426abcf1c684 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Tue, 22 Oct 2019 08:27:23 -0700 Subject: [PATCH] init: only provide control message results for devices launching > Q This is a behavior change and may have unintended consequences, especially in Java, where failed property sets create exceptions. Therefore, we only provide this new behavior to devices launching > Q. Bug: 137070994 Test: build Change-Id: If0b44aedc5c887ea6ea16dd3ec551ac2bf793cef --- init/property_service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/property_service.cpp b/init/property_service.cpp index c6bbc1488..3baaf7c1f 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp @@ -404,7 +404,7 @@ static uint32_t SendControlMessage(const std::string& msg, const std::string& na // We must release the fd before sending it to init, otherwise there will be a race with init. // If init calls close() before Release(), then fdsan will see the wrong tag and abort(). int fd = -1; - if (socket != nullptr) { + if (socket != nullptr && SelinuxGetVendorAndroidVersion() > __ANDROID_API_Q__) { fd = socket->Release(); control_message->set_fd(fd); }