OSDN Git Service

netd: Enable the SO_PASSCRED socket option
authorNick Kralevich <nnk@google.com>
Mon, 18 Apr 2011 22:54:13 +0000 (15:54 -0700)
committerNick Kralevich <nnk@google.com>
Mon, 18 Apr 2011 22:54:13 +0000 (15:54 -0700)
Ensure that sender credentials are available when we
receive a netlink message.

Change-Id: I8a352573c7e49d99b4f2fdb2e4ce9abe58d4fc49

NetlinkManager.cpp

index 634fd4d..e7f0c7b 100644 (file)
@@ -50,6 +50,7 @@ NetlinkManager::~NetlinkManager() {
 int NetlinkManager::start() {
     struct sockaddr_nl nladdr;
     int sz = 64 * 1024;
+    int on = 1;
 
     memset(&nladdr, 0, sizeof(nladdr));
     nladdr.nl_family = AF_NETLINK;
@@ -63,7 +64,12 @@ int NetlinkManager::start() {
     }
 
     if (setsockopt(mSock, SOL_SOCKET, SO_RCVBUFFORCE, &sz, sizeof(sz)) < 0) {
-        LOGE("Unable to set uevent socket options: %s", strerror(errno));
+        LOGE("Unable to set uevent socket SO_RCVBUFFORCE option: %s", strerror(errno));
+        return -1;
+    }
+
+    if (setsockopt(mSock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)) < 0) {
+        SLOGE("Unable to set uevent socket SO_PASSCRED option: %s", strerror(errno));
         return -1;
     }