Revert "Fix deadlock caused by two-threaded property controls" am: d1076eb728 am: af594059f4 am: 7e37dd36db

Original change: https://googleplex-android-review.googlesource.com/c/platform/bionic/+/24028888

Change-Id: I5c4c39a7e18b13c58bf4bdbabad93b20db2bc166
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libc/bionic/system_property_set.cpp b/libc/bionic/system_property_set.cpp
index 6e49bce..e6a732e 100644
--- a/libc/bionic/system_property_set.cpp
+++ b/libc/bionic/system_property_set.cpp
@@ -55,24 +55,16 @@
 
 class PropertyServiceConnection {
  public:
-  PropertyServiceConnection(const char* name) : last_error_(0) {
+  PropertyServiceConnection() : last_error_(0) {
     socket_.reset(::socket(AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0));
     if (socket_.get() == -1) {
       last_error_ = errno;
       return;
     }
 
-    // If we're trying to set "sys.powerctl" from a privileged process, use the special
-    // socket. Because this socket is only accessible to privileged processes, it can't
-    // be DoSed directly by malicious apps. (The shell user should be able to reboot,
-    // though, so we don't just always use the special socket for "sys.powerctl".)
-    // See b/262237198 for context
-    const char* socket = property_service_socket;
-    if (strcmp(name, "sys.powerctl") == 0 &&
-        access(property_service_for_system_socket, W_OK) == 0) {
-      socket = property_service_for_system_socket;
-    }
-
+    const char* socket = access(property_service_for_system_socket, W_OK) == 0
+                             ? property_service_for_system_socket
+                             : property_service_socket;
     const size_t namelen = strlen(socket);
     sockaddr_un addr;
     memset(&addr, 0, sizeof(addr));
@@ -189,7 +181,7 @@
 };
 
 static int send_prop_msg(const prop_msg* msg) {
-  PropertyServiceConnection connection(msg->name);
+  PropertyServiceConnection connection;
   if (!connection.IsValid()) {
     return connection.GetLastError();
   }
@@ -282,7 +274,7 @@
     // New protocol only allows long values for ro. properties only.
     if (strlen(value) >= PROP_VALUE_MAX && strncmp(key, "ro.", 3) != 0) return -1;
     // Use proper protocol
-    PropertyServiceConnection connection(key);
+    PropertyServiceConnection connection;
     if (!connection.IsValid()) {
       errno = connection.GetLastError();
       async_safe_format_log(ANDROID_LOG_WARN, "libc",