diff options
author | Nick Kralevich <nnk@google.com> | 2011-04-18 15:54:13 -0700 |
---|---|---|
committer | Nick Kralevich <nnk@google.com> | 2011-04-18 15:54:13 -0700 |
commit | 79b579c92afc08ab12c0a5788d61f2dd2934836f (patch) | |
tree | 9fa0770e483d3274c542468b4b5ff0962e363834 | |
parent | e7732280e7af281d35f90d7794a31a7f6e10f185 (diff) | |
download | netd-gingerbread.tar.gz |
netd: Enable the SO_PASSCRED socket optionandroid-sdk-2.3.4_r1android-cts-2.3_r5android-cts-2.3_r4android-cts-2.3_r3android-cts-2.3_r12android-cts-2.3_r11android-cts-2.3_r10gingerbread
Ensure that sender credentials are available when we
receive a netlink message.
Change-Id: I8a352573c7e49d99b4f2fdb2e4ce9abe58d4fc49
-rw-r--r-- | NetlinkManager.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/NetlinkManager.cpp b/NetlinkManager.cpp index 634fd4dc..e7f0c7b8 100644 --- a/NetlinkManager.cpp +++ b/NetlinkManager.cpp @@ -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; } |