summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Kralevich <nnk@google.com>2011-04-18 15:54:13 -0700
committerNick Kralevich <nnk@google.com>2011-04-18 15:54:13 -0700
commit79b579c92afc08ab12c0a5788d61f2dd2934836f (patch)
tree9fa0770e483d3274c542468b4b5ff0962e363834
parente7732280e7af281d35f90d7794a31a7f6e10f185 (diff)
downloadnetd-gingerbread.tar.gz
Ensure that sender credentials are available when we receive a netlink message. Change-Id: I8a352573c7e49d99b4f2fdb2e4ce9abe58d4fc49
-rw-r--r--NetlinkManager.cpp8
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;
}