summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author JP Abgrall <jpa@google.com> 2011-08-17 12:06:56 -0700
committer JP Abgrall <jpa@google.com> 2011-08-17 12:06:56 -0700
commit36bd9844f88cd0eb90e94b45bf5b4aa27d4d5628 (patch)
tree2bb4e4547ce8d0a0041aed2cd064da9ccc3f2c24
parentbb04b678cdc19119c98d1edfdbb732983e490e66 (diff)
core/java NetworkManagement: Don't untag sockets willy-nilly
Tagging is conditional on having some useful info to tag. But untagging had not such restriction leading to unnecessary kernel calls that just fail with EINVAL. b/5165619 Change-Id: Idd4b1dc45db04429f85e3ba37656640a8d33046a
-rw-r--r--core/java/com/android/server/NetworkManagementSocketTagger.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/java/com/android/server/NetworkManagementSocketTagger.java b/core/java/com/android/server/NetworkManagementSocketTagger.java
index 23af37e6188d..9f6ab315c304 100644
--- a/core/java/com/android/server/NetworkManagementSocketTagger.java
+++ b/core/java/com/android/server/NetworkManagementSocketTagger.java
@@ -115,7 +115,8 @@ public final class NetworkManagementSocketTagger extends SocketTagger {
private void unTagSocketFd(FileDescriptor fd) throws IOException {
int fdNum = fd.getInt$();
- if (fdNum == -1) return;
+ final SocketTags options = threadSocketTags.get();
+ if (fdNum == -1 || (options.statsTag == -1 && options.statsUid == -1)) return;
String cmd = "u " + fdNum;
internalModuleCtrl(cmd);
}