diff options
| -rw-r--r-- | core/java/android/os/Binder.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index 59b8274a481b..f8260cababeb 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -226,9 +226,16 @@ public class Binder implements IBinder { try { fd.close(); } catch (IOException e) { + // swallowed, not propagated back to the caller } } } + // Write the StrictMode header. + if (reply != null) { + reply.writeNoException(); + } else { + StrictMode.clearGatheredViolations(); + } return true; } return false; @@ -341,12 +348,15 @@ final class BinderProxy implements IBinder { public void dump(FileDescriptor fd, String[] args) throws RemoteException { Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); data.writeFileDescriptor(fd); data.writeStringArray(args); try { - transact(DUMP_TRANSACTION, data, null, 0); + transact(DUMP_TRANSACTION, data, reply, 0); + reply.readException(); } finally { data.recycle(); + reply.recycle(); } } |