summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@android.com> 2018-07-23 13:45:28 -0600
committer Josh Gao <jmgao@google.com> 2018-08-08 11:25:24 -0700
commit344960b4d248b5101e277a8e3ffac3066da9ff96 (patch)
tree77532851cfbf1a3b1f0447df80fa124a0088b13e
parent9b04b2fd0b41b6bca58eb1d7116c597bb67856bd (diff)
Shuffle FD ownership? \noideadog
Test: manual Bug: 111746860 Change-Id: I1d88bcf81efe71d622bcf3056a6d7c1a4c793383 (cherry picked from commit a651b7833743a22859635409d923729678ac40b1)
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerShellCommand.java42
1 files changed, 21 insertions, 21 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index cd9efdcf8224..9eb9ab9a1cec 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -2418,30 +2418,30 @@ class PackageManagerShellCommand extends ShellCommand {
private int doWriteSplit(int sessionId, String inPath, long sizeBytes, String splitName,
boolean logSuccess) throws RemoteException {
- final PrintWriter pw = getOutPrintWriter();
- final ParcelFileDescriptor fd;
- if (STDIN_PATH.equals(inPath)) {
- fd = new ParcelFileDescriptor(getInFileDescriptor());
- } else if (inPath != null) {
- fd = openFileForSystem(inPath, "r");
- if (fd == null) {
- return -1;
+ PackageInstaller.Session session = null;
+ try {
+ final PrintWriter pw = getOutPrintWriter();
+ final ParcelFileDescriptor fd;
+ if (STDIN_PATH.equals(inPath)) {
+ fd = ParcelFileDescriptor.dup(getInFileDescriptor());
+ } else if (inPath != null) {
+ fd = openFileForSystem(inPath, "r");
+ if (fd == null) {
+ return -1;
+ }
+ sizeBytes = fd.getStatSize();
+ if (sizeBytes < 0) {
+ getErrPrintWriter().println("Unable to get size of: " + inPath);
+ return -1;
+ }
+ } else {
+ fd = ParcelFileDescriptor.dup(getInFileDescriptor());
}
- sizeBytes = fd.getStatSize();
- if (sizeBytes < 0) {
- getErrPrintWriter().println("Unable to get size of: " + inPath);
- return -1;
+ if (sizeBytes <= 0) {
+ getErrPrintWriter().println("Error: must specify a APK size");
+ return 1;
}
- } else {
- fd = new ParcelFileDescriptor(getInFileDescriptor());
- }
- if (sizeBytes <= 0) {
- getErrPrintWriter().println("Error: must specify a APK size");
- return 1;
- }
- PackageInstaller.Session session = null;
- try {
session = new PackageInstaller.Session(
mInterface.getPackageInstaller().openSession(sessionId));
session.write(splitName, 0, sizeBytes, fd);